![]() |
1
1
似乎您有一个非常受I/O限制的系统(输入端的文件和输出端的DB)。我没有看到CPU密集型部件。 显而易见的优化已经存在:将大量传入的文件打包,并将每个设备的数据分组。成本是内存消耗和数据库更新的延迟。你需要参数。 作为第一个想法,我会把它设置在3个由有界队列连接的街区。这些队列将让任何“不堪重负”的组件限制其供应商。
块2:1个线程来组织和分组数据。决定设备数据何时应进入数据库 块3:1+线程将数据推送到数据库。 这些块给了这个系统一些灵活性。有限的队列允许您控制资源消耗。请注意,应该参数化块2以调整块大小。 |
![]() |
2
0
dispatcher可以不断监视可用的系统内存和cpu使用情况(例如使用性能计数器api)。 只要有足够的空闲内存或足够低的cpu负载,就启动一个新线程。您必须进行一些测试,以找到应用程序的最佳阈值。 另外,如果您是在32位上运行,那么一个进程只能使用大约800mb的ram,然后才会出现内存不足异常,因此您可能也需要考虑到这一点。
程序流程如下:
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
pseudodev · 失败的测试仅显示堆栈跟踪,不显示完整日志 5 月前 |
![]() |
CactusCake · if语句中应有分号 6 月前 |
![]() |
Bin4ry · 子文件夹中的应用程序设置 6 月前 |