我在C#中创建了一个程序,与Oracle Express(本地实例)中的250万条记录一起工作,解析/拆分这些记录并创建额外的500万条记录。为程序提供所有可能的资源
我添加了一些代码来在屏幕上打印时间,它似乎相当快。它每9秒完成1K记录的所有处理。这意味着完成需要6个多小时。
现在,使用任务管理器,我可以看到该程序正在使用6%的CPU(最大值)和大约50MB的内存。我了解操作系统,甲骨文本身需要资源来操作,但.....有没有办法告诉这个小程序“嘿,没关系,继续前进,使用至少50%的CPU,有4GB的RAM把自己打昏”?
注意:我在Oracle Express中使用本地实例的原因之一是减少网络瓶颈。我也可能不会经常运行这个过程,但我很想看看这是否可能。
请原谅我的noobness,
谢谢!
@Kranky - 鉴于您正在读取和写入数据库,您的应用程序更可能是受CPU限制的I/O限制。 – ChrisF 2011-05-07 22:11:20
我同意,IO子系统可能是瓶颈。我会尝试第二个建议,并在程序运行时监视CPU资源。尽管如此,在它终止并出现堆栈溢出异常之前,我可能只运行一秒钟。 – Ulises 2011-05-09 04:12:30
@KrankyAztec - 堆栈不会因循环而溢出,这通常是由于递归函数调用而发生的。我所建议的是可以消耗100%的CPU,操作系统不会限制你的应用程序。我会在应用程序的I/O代码部分放一些额外的时间代码,以显示计算和输入/输出之间的差异。如BugFinder提示的那样,不可能在Oracle SQL中完成整个操作? – Tony 2011-05-09 08:25:04