我试图使用该${CMAKE_COMMAND} -E copy <from> <to>
格式复制多个文件,但我想知道是否有办法提供一些文件复制到特定目录.似乎cmake副本只允许一次复制一个文件.当我宁愿提供要复制的文件列表作为第一个参数时,我真的不想重复使用复制命令.
我认为最简单的解决方案是使用平台相关的"cp"命令.虽然这对于便携性肯定不好,但我们的系统保证在Linux上构建.一个简单的,独立于平台的解决方案会更好.
更新:看起来我的13.0.1正在调用来自这个差异化CharMatcher的代码.
我似乎遇到了番石榴的Charmatcher的问题.我目前正在编写一些JUnit测试,我注意到第一次测试花费了一些时间(15+秒),但未来的测试大致相同(.3秒),大多数测试都是通过相同的码.
我对代码的分析表明,Guava图书馆中的Charmatcher似乎是罪魁祸首.看起来CharMatcher中有一些静态初始化代码可能是它花费这么长时间的真正原因.有什么办法可以禁用或优化这种行为吗?维基页面或帮助文件中是否存在我遗漏的内容?
Guava版本13.0.1,系统:Linux 64,Eclipse 3.6.1
编辑:我用以下代码构建了一个测试应用程序:
import com.google.common.base.CharMatcher;
public class Main {
public static void main(String[] args) {
// Using system instead of stopwatch to isolate library.
long startTime = System.currentTimeMillis();
CharMatcher.is(' ');
long endTime = System.currentTimeMillis();
System.out.println("took " + String.valueOf(endTime-startTime) + " ms");
startTime = System.currentTimeMillis();
CharMatcher.is('d');
endTime = System.currentTimeMillis();
System.out.println("2nd took " + String.valueOf(endTime-startTime) + " ms");
}
}
Run Code Online (Sandbox Code Playgroud)
这导致以下输出:
took 15945 ms
2nd took 0 ms
Run Code Online (Sandbox Code Playgroud)
我在eclipse中运行了这个减去JUnit框架和google的guava库.我还打包了一个可执行的char并收到了类似的结果.在我通过它运行一个分析器后,我会再回来进行第二次编辑.
谢谢你的帮助.
编辑2:分析结果:
Main.main(String[]) 22,556 ms
com.google.common.base.CharMatcher.<clinit>() 22.556 ms …
Run Code Online (Sandbox Code Playgroud)