【发布时间】:2014-02-21 23:32:55
【问题描述】:
我是一名计算机科学专业的学生,致力于自学算法。我现在正在研究的算法必须在功能强大的 PC 上运行大约两个月才能产生任何有用的东西,因此处理器效率会产生很大的不同。大部分处理器时间将用于运行具有不同初始值的子进程。
理想情况下,我希望在单独的线程上运行其中的几个子进程,为每个线程保留一个内核和部分缓存约一小时。在那一小时之后,我可以让操作系统有时间运行其他进程,并检查用户输入。一旦完成,我想再次保留所有资源一个小时。
有没有一种简单的方法可以做到这一点,如果没有,是否值得做(性能提高 5%-10% 值得将编程时间加倍),如果值得做但是很难有什么资源来计算它出来了吗?
我对 C++ JAVA 很熟悉,必要时可以做 C#
【问题讨论】:
-
您的目标操作系统是什么?如果机器处于静止状态,这样做的改进可能远低于 1%。
-
您确定要在一个问题中询问所有这些语言吗?这太宽泛了:c#、java 和 c++ 非常不同,并且有多种技术可以为它们中的每一个处理多线程。
标签: c# java c++ multithreading caching