我在公司编写的测试中遇到了与java的ArrayList相关的问题.我的查询只是实际问题的一小部分.
假设我们有以下函数将一个ArrayList复制到另一个:
void function(List<E> l)
{
List<E> m = new ArrayList<E>(l);
}
Run Code Online (Sandbox Code Playgroud)
问题基本上要求优化此复制操作.列表可能包含一百万个条目.我尝试了以下方法:
Collections.copy
System.Arraycopy
都加进去
但所有这些似乎比给定的方法慢.我需要一个比给定方法更快的方法,或者它是可用的最佳方法?
我试图通过LLVM解析代码,在我的C / C ++代码中打印所有函数的名称。我参考了此处给出的示例http://llvm.org/docs/WritingAnLLVMPass.html#basic-code-required 该示例适用于C代码输入,但对于C ++输入,它在一个简单的Hello World程序中显示以下函数名称
__cxx_global_var_init
主要
全球 _I_a
然后,我发现LLVM的iostream存在某些问题,如下所述:http : //llvm.org/docs/FAQ.html#what-is-this-llvm-global-ctors-and-global-ia-stuff-that当我包含iostream时发生
我从代码中删除了iostream,然后仅获得“ main”作为输出。
但是对于可以说包含以下功能的多功能C ++程序:convertperm,findType和main(没有iostream),我得到以下输出
_Z11convertpermSs
_Z8findtypeSs
主要
多功能C程序正常运行
谁能提供解决此问题的方法?