我有500个文件要绘制,我想自动执行此操作.我有gnuplot脚本,用硬编码的文件名进行绘图.我希望有一个循环,每次迭代使用不同的文件名调用gnuplot,但似乎gnuplot不支持命令行参数.
有一个简单的方法吗?我还安装了gnuplot-python包,以防我可以通过python脚本来实现.但是,我找不到api,所以有点难以弄明白.
谢谢!
我正在读一个大的tsv文件(~40G)并尝试通过逐行读取并仅将某些行打印到新文件来修剪它.但是,我一直得到以下异常:
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2894)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:117)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:532)
at java.lang.StringBuffer.append(StringBuffer.java:323)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at java.io.BufferedReader.readLine(BufferedReader.java:379)
Run Code Online (Sandbox Code Playgroud)
下面是代码的主要部分.为了以防万一,我将缓冲区大小指定为8192.达到缓冲区大小限制后,Java是否清除缓冲区?我没有看到可能导致大量内存使用的原因.我试图增加堆大小但它没有任何区别(机器有4GB RAM).我也试过每X行刷一次输出文件,但它也没有帮助.我想也许我需要打电话给GC,但听起来不对.
有什么想法吗?非常感谢.顺便说一句 - 我知道我应该只调用一次trim(),存储它,然后再使用它.
Set<String> set = new HashSet<String>();
set.add("A-B");
...
...
static public void main(String[] args) throws Exception
{
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(inputFile),"UTF-8"), 8192);
PrintStream output = new PrintStream(outputFile, "UTF-8");
String line = reader.readLine();
while(line!=null){
String[] fields = line.split("\t");
if( set.contains(fields[0].trim()+"-"+fields[1].trim()) )
output.println((fields[0].trim()+"-"+fields[1].trim()));
line = reader.readLine();
}
output.close();
}
Run Code Online (Sandbox Code Playgroud) 这可以被视为一般的Java问题,但为了更好地理解我使用Lucene作为示例.
您可以在Lucene中使用不同的Tokenizer来标记文本.有主要的抽象Tokenizer类,然后是许多扩展它的不同类.TokenFilter也是如此.
现在,似乎每次要索引文档时,都会创建一个新的Tokenizer.问题是,既然Tokeinzer只是一个实用类,为什么不让它静止?例如,将所有字母转换为小写字母的Tokenizer可以使用静态方法,该方法只对每个输入所做的输入执行.为我们想要索引的每一段文本创建一个新对象有什么意义?
有一点需要提及 - Tokeinzer有一个私有字段,其中包含它接收到的令牌化输入.我只是不明白为什么我们需要以这种方式存储它,因为对象在标记化过程结束后立即被销毁并返回新的标记化文本.我唯一能想到的是多线程访问可能吗?
谢谢!
我有一个主要的方法,如:
A a = new A();
a.start();
B b = new B();
b.start();
Run Code Online (Sandbox Code Playgroud)
B处理a.start创建的文件,因此a.start()必须先完成.但是,a.start()运行一个多线程作业,在它完成之前执行b.start().
谢谢!
对于将来可能会变大的项目,使用Maven的推荐方法是什么?我使用Eclipse,我看到了不同的方法.有些人使用一个没有子模块的项目,有些像mahout,例如,有不同的子项目用于不同的模块(例如,核心,数学,示例等).你可以在这个链接中看到它:http: //svn.apache.org/repos/asf/mahout/trunk/
是否优先选择其中一个优势?
谢谢.