在自訂應用程式中使用 Intel Core Duo CPU 加速從 Amazon S3 下載批次資料時,我可以運行多少個執行緒?

在自訂應用程式中使用 Intel Core Duo CPU 加速從 Amazon S3 下載批次資料時,我可以運行多少個執行緒?

我如何找出可以使用的最大線程數?我是程式設計新手,所以我想弄清楚我需要知道什麼。我有 950 GB 的檔案需要從 Amazon S3 下載。我想我可以使用兩個線程,每個線程下載該數量的一半,並行運行。

我希望透過多執行緒應用程式來加快從 Amazon S3 下載批量資料的速度,但最好先知道我的電腦是否支援多執行緒。

電腦規格:

  • 型號:MacBook(13 英寸,2010 年中,A1342)
  • 處理器:2.4 GHz 英特爾酷睿雙核
  • 記憶體:8 GB 1067 MHz DDR3
  • 軟體:MacOS Sierra 10.12.6

該處理器非常舊且已經停產,因此不支援Intel超執行緒。我不確定多線程是否有好處。但是如果可以支援多線程的話,可以支援多少個線程,如果使用太多線程會對效能產生影響嗎?

如果我錯了請糾正我,但我讀過非超線程核心只能支援 1 個線程,所以我想也許我的處理器最多可以支援 2 個線程,那麼之後的任何更多線程的影響都可以忽略不計。

答案1

您的問題中有幾個錯誤的假設,所以讓我在這裡澄清一下:

  1. 即使在單核心 CPU 上也可以進行多執行緒處理。執行只是按時間分割,因此在任何給定時刻都有 1 個執行緒處於活動狀態,但總體執行緒執行是並行的。
  2. 多執行緒並不等於加速。如果設計天真,多執行緒應用程式總是比單執行緒應用程式慢數十甚至數百倍。
  3. 99%的情況下從外網下載並不依賴多執行緒。多範圍 HTTP 下載可能值得一看,就像 NetAnts、ReGet 和其他撥號數據機時代的應用程式中實現的那樣。但是,由於網路策略和所涉及的伺服器不同,無法保證多範圍下載會比常規下載更快。

所以,畢竟。您肯定必須在應用程式中收集指標:什麼是最慢的操作?然後重新設計它以獲得更快的速度。

答案2

我如何找出可以使用的最大線程數?

Intel Core Duo 有 2 個線程,因為它有 2 個核心單線程處理器。每個核心都具有單線程的能力。

但是如果可以支援多線程的話,可以支援多少個線程,如果使用太多線程會對效能產生影響嗎?

它支援2個線程。

所以我想也許我的處理器最多可以支援 2 個線程,那麼之後的任何更多線程的影響都可以忽略不計。

它無法處理超過 2 個線程。您的多線程應用程式將只有兩個線程,因為由於硬體原因您只能產生 2 個線程。

相關內容