嘿stackoverflow社区!
我遇到一个问题,其中涉及程度很高的算法程序正在使用TOO LITTLE cpu利用率:介于3%和4%之间。返回结果花费了很长时间,我相信这还不够努力。
你们中的任何一个天才都知道为什么会发生这种情况吗-如果有什么我希望100%的利用率。另一个细节是该程序将插入到sqlite3数据库中,因此,是的,我相信通过sqlite3jdbc库有很多JNI调用。(请注意,我想更早地使用PreparedQuery批处理来延迟这些插入,但这会导致严重的内存问题-数据很多)。
提前致谢
更新:固定。是的,我只是一个蠢货,但我没想到sqlite会启动新交易并造成如此大的开销。
现在,我使用PreparedStatement并在插入之前将32768个条目排队-对我来说似乎是一个足够好的数字。
显然,数据库调用导致延迟。创建较小的批次并测试是否有帮助吗?也许您也可以并行化算法,以在某个地方获取结果的队列和另一个清理该队列的线程?
编辑:
还有其他一些问题领域:
所有这些因素都应考虑在内
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句