| 本帖最後由 萬年船 於 16-8-4 17:37 編輯 
 目前MultiCharts版本存在一個已驗證過、確實存在的CPU效能瓶頸
 對於同一個圖表視窗,如果以下條件同時成立的話
 (請注意,是同時,任一條件不符合,就可跳脫此效能瓶頸的暴風圈)
 1.【使用多數列】
 2.【勾選即時歷史吻合】
 3.【即時Ticks累計已高達數十萬筆】
 4.【出現連續多秒的快市】
 CPU核心將會容易出現滿載現象
 CPU滿載會出現何種延遲,相信不難想像(當然不會是幾百個毫秒可以計算的)
 當然台指期一定是安全的,因為縱使是完整ticks也跳脫第(3)個條件
 但對ES, GE就未必是安全的了
 
 所以在MultiCharts原廠修復此問題前,如果有交易到ES, GE這種成交量巨大的商品
 可能就要小心以下問題了:
 1.CPU核心時脈高低
 (選VPS時要特別考量此點,別降低了網路延遲,但增加了運算延遲
 低時脈但多核心是無法幫助一個存在效能瓶頸的MC圖表視窗)
 2.商品單日總Ticks量
 3.一台電腦同時執行多少這類大量tick商品的策略
 
 
 
 以下為驗證環境與條件
 MultiCharts版本:9.0x86
 作業系統:Vista
 CPU:E8400雙核心兩條執行緒、核心時脈3G
 記憶體:4G
 模擬快市報價:MonitorQuote_v2.02內建的sQuote
 
 
 
 首先圖表視窗使用多數列,如下圖所示
 
   
 
 
 訊號需要使用到多數列,不用複雜的運算
 只需兩行程式即可測出此效能瓶頸,如下圖所示
 
   
 
 
 策略要勾選【即時與歷史數列資料吻合。】,如下圖所示
 
   
 
 
 接下來開始模擬快市報價
 每秒產生1000筆Ticks(ES商品每秒1000筆的快市還蠻容易看到的)
 如下圖所示
 
   
 
 
 等到累計的Tick數達到10幾萬時,就快看到CPU核心出現滿載的時候了
 如下圖所示
 
   
 上圖是用PerfMon軟體偵測的,可以看到MultiCharts這個程式CPU已吃到100%
 而PerfMon的【Process】的【%Processor Time】計數器100%指的是一個CPU核心的100%
 對應到【工作管理員】就是50%,如果是雙核心的話
 而一個圖表視窗使用一條執行緒,所以其他核心是幫不上忙的
 所以上圖的使用率永遠無法跳到200%(雙核心)
 
 
 
 當然是否一定是10幾萬之後開始出現,會取決於
 1.CPU核心時脈高低
 2.快市每秒的tick數多寡
 不同條件下,有所不同
 
 
 
 |