【发布时间】:2012-07-12 19:44:46
【问题描述】:
我正在将曲线拟合到大约 25000 个检测器事件中的峰值。我的代码只是循环遍历所有事件,适合它找到的所有峰值并获取参数信息。这需要永远!
我停止了我的代码实际绘制曲线,但我想知道我是否可以做任何其他事情来加速这个处理。我想如果我阻止 ROOT 将每个适合的参数打印到屏幕上,它可能会运行得更快。
这是真的吗?如果是这样,我该怎么做?还有其他想法吗?
TGraphErrors * gr1 = view_waveform_ebars(run,evtNum,21);
mygaus -> SetParameters(671.55e3,-1000,S2loc,500);
gr1 -> Fit(mygaus,"","",tspulse_sum[j],tepulse_sum[j]);
fitResult = gr1 -> GetFunction("mygaus");
pchi2[j] = fitResult -> GetChisquare();
我希望不需要将我正在使用的功能复制到我的帖子中。但是mygaus 有4 个参数,每次我使用gr1-> Fit(mygaus,...) 调用它时,我都会在屏幕上看到参数。所以问题是屏幕输出是否会减慢我的速度,如果是,我该如何关闭它?
谢谢
【问题讨论】:
-
如果您可以发布一些相关代码供我们查看,这将非常有帮助。
-
“ROOT”到底是什么?
gr1->Fit(...)是否打印到 stdout、stderr、/dev/console 或其他地方?如果将程序的输出重定向到 /dev/null(或系统的等效项)会发生什么? -
你试过“Q”选项吗?
-
@molbdnilo:这就是答案。
标签: c++ performance screen root-framework