目標: 我想估計在多線程中併發運行時,代碼執行速度有多快。處理器速度如何跨線程分佈?
問題1)
如果我知道究竟有多快我的代碼在一個線程一個請求是他們的估計如何快速將運行在多個線程的任何方式運行?
問題2)
什麼樣的影響,如果有的話,其他線程的存在影響對方線程的執行速度?
我的情況:
我在最壞的情況下大小爲1萬個節點的內存遍歷圖。它一次只能訪問1百萬個內存地址1。在1線程上花費了半秒鐘的時間,我很擔心這將如何隨着多個用戶執行相同的查詢而擴展。每個用戶請求都由一個單獨的線程處理,因此100個併發用戶需要100個併發線程。每個線程共享相同的資源但只讀。沒有寫作。有沒有機會讓每個用戶看到大致相同的執行時間?
注:我知道這將取決於許多因素,但肯定必須有識別代碼是否會擴大的一些方法,如果你發現這個時間X量的時間給出一個單獨的線程硬件:x硬件。作爲最後的說明,我想補充一點,我對計算機硬件體系結構的經驗有限,以及多線程如何在底層工作。
編號:http://en.wikipedia.org/wiki/Ahmdal%27s_Law –