1
1
似乎您有一个非常受I/O限制的系统(输入端的文件和输出端的DB)。我没有看到CPU密集型部件。 显而易见的优化已经存在:将大量传入的文件打包,并将每个设备的数据分组。成本是内存消耗和数据库更新的延迟。你需要参数。 作为第一个想法,我会把它设置在3个由有界队列连接的街区。这些队列将让任何“不堪重负”的组件限制其供应商。
块2:1个线程来组织和分组数据。决定设备数据何时应进入数据库 块3:1+线程将数据推送到数据库。 这些块给了这个系统一些灵活性。有限的队列允许您控制资源消耗。请注意,应该参数化块2以调整块大小。 |
2
0
dispatcher可以不断监视可用的系统内存和cpu使用情况(例如使用性能计数器api)。 只要有足够的空闲内存或足够低的cpu负载,就启动一个新线程。您必须进行一些测试,以找到应用程序的最佳阈值。 另外,如果您是在32位上运行,那么一个进程只能使用大约800mb的ram,然后才会出现内存不足异常,因此您可能也需要考虑到这一点。
程序流程如下:
|
TheKing · 为什么数组的地址可以有负值? 2 年前 |
yurnero · MATLAB:“加载”一个快速访问功能 6 年前 |
joe · 一页可以同时在两个工作集中吗? 6 年前 |
Jaques · “.exe”已触发断点 6 年前 |
adn bps · 在函数中修改变量的高效内存方法 6 年前 |
Gauraang Khurana · C语言中分段错误的不稳定行为 6 年前 |
Rajesh K · 如何查找设备中存在的广告垃圾? 6 年前 |