嘿stackoverflow社区!
我遇到了一个问题,一个高度参与的算法程序使用的 CPU 利用率太低:在 3% 到 4% 之间。返回结果需要很长时间,而且我相信它还不够努力。
你们中的任何一个天才都知道为什么会发生这种情况 - 如果有的话,我希望 100% 的利用率。一个额外的细节是程序插入到 sqlite3 数据库中,因此是的,我相信有很多通过 sqlite3jdbc 库的 JNI 调用。(请注意,我想早先使用 PreparedQuery 批处理推迟这些插入,但这会导致严重的内存问题 - 有很多数据)。
提前致谢
更新:已修复。是的,我只是个傻瓜,但我没想到 sqlite 会启动一个新事务并做这么多开销。
我现在使用 PreparedStatement 并在插入之前对 32768 个条目进行排队 - 对我来说似乎是一个足够好的数字。