contention

    2熱度

    3回答

    我有一個多線程程序,其中兩個單獨的線程將調試輸出發送到std :: clog,並且輸出是散佈的。我想找到一種簡單的方法來強制輸出至少保持分開,除了輸出中的換行。這樣,調試輸出可以更容易解釋。在某些地方,我在輸出之前插入了睡眠(1),並在將輸出發送到堵塞之前將輸出收集到一個字符串中,以減少碰撞的可能性,但是我更喜歡更強大和更可靠的解決方案。 有一種簡單的方法,以確保每個線程在同一時間寫一整行到std

    1熱度

    1回答

    我有std::map<int, Object*> ObjectMap。現在我需要更新地圖並且可以通過多個線程進行更新。所以,我們鎖定地圖以獲取更新。但是每次更新都會導致冗長的計算,從而導致鎖定爭用。 讓我們考慮以下情況。 class Order //Subject { double _a, _b,_c; std::vector<Customer* > _customers;

    1熱度

    1回答

    現在CUDA允許在全局內存上進行動態分配。然而,我找不到任何有關該函數的可伸縮性的參考:是否比預先分配一塊內存更好,然後通過自動遞增全局整數將下一個內存塊分配給一個線程?這最後的「自制」解決方案的工作原理,但有一個明顯的可擴展性問題,所以我想知道malloc是否照顧到這一點。

    5熱度

    1回答

    我目前有一個部分應用程序(.net 4.0,C#)的爭用率問題,我正在維護。 我想要做的是寫一個PerfCounter,如果一個部分鎖不能獲得。現在我只有由.net提供的整體計數器,但我想爲某些選定的鎖定有一個PerfCounter。 Profiler等不是我的選擇,因爲這是一個我無法觸及的高性能生產環境,我可以記錄perfounter。

    1熱度

    1回答

    我在Visual Studio 2010中運行軟件的併發配置文件,發現一些不在鎖定內的代碼行上存在一些爭用。說一個新的操作來創建一個數組,或者一個線程本地的DynamicMethod.Invoke調用。有些爭論只是簡單的分配。我無法弄清楚爲什麼這些行會引起意圖,因爲他們在我的代碼中沒有任何鎖定。 任何人都會遇到類似問題?我認爲在VS2010併發性分析器中顯示的爭用應該都是由等待鎖定或輸入一段互斥部

    1熱度

    3回答

    奇怪的事情我想調整IIS,以減少競爭,並按照在.NET我試圖在文件中找到這沒有結果許多文章: <system.web> ... <httpRuntime minFreeThreads="8" minLocalRequestFreeThreads="4" ... /> .... <processModel maxWorkerThreads="20" maxIo

    1熱度

    3回答

    我正在分析運行不同數量的允許線程的多線程程序。以下是三次相同輸入作業的性能結果。 1 thread: Total thread time: 60 minutes. Total wall clock time: 60 minutes. 10 threads: Total thread time: 80 minutes. (Worked 33% longer)

    2熱度

    1回答

    我們使用yourkit分析器來找出並解決我們應用程序中的許多爭用問題。我們使用線程監視來查看哪些線程被阻塞並解決了許多這些問題。但是,您的套件不會顯示ReentrantLock被阻止或等待。那麼,如何才能真正看到爭用問題。 因爲我們已經修復了大部分使用併發結構的地方,所以現在不能依賴Yourkit監視器概要分析。現在我們需要一些工具來幫助我們找出包括可重入鎖定在內的爭用問題。

    1熱度

    1回答

    如果您已使用vs 2010中提供的併發爭用配置文件工具,您會注意到報告中使用的所有線程標識都不是受管理的線程標識,這很煩人。我想知道哪個線程是哪一個線程,以及如何輕鬆映射報告中使用的線程ID(通常爲4位數的ID)和我可以從代碼獲取的ManagedThreadID值? 謝謝。

    4熱度

    4回答

    我正在解析一個相當大的(200 MB)XML文件,該文件導致每個對象樹定義一堆參數(key = value)。這個數據結構在Tomcat webapp中運行,並用於查找這些參數。 幾個月前,我們在這臺服務器上發現了堆內存問題。我們可以通過實習參數鍵和值(其中大部分非常冗餘)來解決問題,從而將內存佔用從150 MB降低到20 MB。 今天,我重溫了服務器,因爲人們都在抱怨啓動時間。我正在分析服務器,