簡體   English   中英

優化內存使用,代碼選擇

[英]Optimize memory usage, code selection

我正在做一個很大的項目:該程序必須同時執行多個任務,並且每個任務每秒都要執行數百個復雜的計算。 該程序必須24/7全天候運行。 由於我不是專業程序員,並且我不知道此類程序如何處理內存和CPU,因此請您提供幫助。

該程序在一周和周末具有不同的功能。 我非常了解Python和C#這兩種語言。

  1. 我需要這個應用程序要快,所以對於計算,我認為c#將更快地處理它們。

  2. 該程序必須在24/7上運行,所以我可能認為一個Python編寫的項目具有幾個小腳本,這些小腳本可以相互調用以永久執行多項任務,而比Big C#代碼更好。

  3. 最好的寫法是什么?

我正在考慮用偽代碼編寫它

// 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
    }
}

解決此問題的最佳方法是什么? 這是一個很大的問題,但是歡迎任何建議。 謝謝

編輯問題是:該程序非常復雜,具有數百個函數和計算。 我希望它是最快和最低的內存消耗。 怎么寫得最好

如果您需要速度,numpy可以幫助您,它的確非常快(它基於Atlas,blas,lapack)。 我不知道您是否可以在C#中使用它。

如果要進行大量計算,則應該找到一種方法來存儲結果以防萬一。 此外,也許您可​​以找到一種使用緩存進行優化的方法。 否則,您可以嘗試使用像“ mpi”這樣的庫使用多台計算機。 無論如何,您應該考慮這些要點,以便能夠進行擴展。

根據計算成本的不同,python可能是c#的不錯選擇。 如果可以使用第三個庫來完成計算,那么它並不重要。

但是我同意obrok,避免使用混合語言,並嘗試使其盡可能簡單。

對於內存而言,使用高速緩存可能是一件好事,或者您應該將計算減少一部分。 研究numpy / scipy函數可以為您提供幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM