我正在开展一个相当大的项目: 该程序必须同时执行多个任务,并且每个任务每秒执行数百个复杂的计算。该计划必须全天候工作。因为我不是一个专业的程序员,我不知道这种程序如何处理内存和CPU,我请求你的帮助。
该计划在本周和周末期间有不同的功能。 我非常了解两种语言,Python和C#。
我需要这个应用程序很快,所以对于计算我认为c#会更快地处理它们。
该程序必须每周7天,每天24小时工作,所以我可能会认为一个Python编写的项目包含多个小脚本,这些脚本可以相互调用多个任务永久工作,比Big C#代码更好。
如何写出最佳方式?
我正在考虑用伪代码编写它,如
// During the week
function1 ()
{
do
{
...
huge code and functions call here
...
}
while DateTime < Friday 23:59
if DateTime = Friday 23:59
{
function2()
function1.close
}
}
// During the weekend
function2 ()
{
do
{
...
different code and functions call here
...
}
while DateTime < Sunday 23:59
if DateTime = Sunday 23:59
{
function1()
function2.close
}
}
解决此问题的最佳方法是什么?这是一个非常大的问题,但欢迎提出任何建议。感谢
修改 问题是:该程序非常复杂,有数百个函数和计算。我希望它是最快和最低内存消耗。 如何写得最好?
答案 0 :(得分:1)
如果你需要速度,numpy可以帮助你,它真的很快(它基于atlas,blas,lapack)。 我不知道你是否可以在C#中使用它。
如果你有很多计算要做,你应该找到一种方法来存储结果以防万一。此外,您可以找到一种优化使用缓存的方法。否则你可以尝试使用像“mpi”这样的库来使用几台计算机。无论如何,你应该考虑这些点,以便能够扩展。
根据计算成本的不同,python可能是c#的不错选择。如果计算可以使用第三个库完成,那么它并不重要。
但我同意obrok,避免使用混合语言,尽量保持简单。
对于内存,可能使用缓存可能是一件好事,或者您应该将计算减少到较小的部分。研究numpy / scipy函数可以帮到你。