光華商場週刊誌
進入樂透研究院
 

 
  CPU
  Intel-P4-541 3.2G 盒裝
    如何 讓 電腦 再快一點
   
   
 

作者 :quickdddd   E-mail 給會員 Posted:2005-07-24 14:55
原本 我的電腦 是 p3 733 MHz 三年前買的

為了 讓我的 Dos 程式 跑快點

去年 換了一台 筆記型 電腦 p4 2.4G MHz

(這兩台 電腦 的 記憶體規格 我不知道 ~~ 不知怎麼查 )

照理說 我的 Dos 程式 應該 快了 2.4 / 0.733 =3.27 倍

可是卻只快了 1.5 倍 而已

太慢的關係 經我簡單查證

我查證方法如下

main()
{

long w;
long pp ;
int far *ptr;

for (w=1; w<=200000000; w++)
{
pp++; /* 結果 比 p3_733 快了 4.8 倍 */
}

ptr = (int *)malloc(.....................)

for (w=1; w<=200000000; w++)
{
ptr[10] =223; /* 結果只快了 1.5 倍左右而已 我的 Dos 程式 使用大量 動態配置記憶體 所以

cpu 雖升級 3.3 倍速 但是程式執行起來 卻只 升級 1.5 倍
*/
}

}


請問以下幾各問題

(1)

int a[]; 的速度 遠比 malloc() 所配置的記憶體 快太多 (單獨比較下 快了10倍)

是因為 int a[] 是配置在 cpu 內部的記憶體

而 malloc() 是配置在 cpu 外部的記憶體 嗎

還是有其他原因呢

(2)

理論上 我只要買更快的 RAM 就可以加速 我的程式了

可是 假設我現在用的記憶體 是 DDR 300

就算我買 了 DDR 500 頂多也只能再快個 500/300 = 1.7 倍

請問 還有沒有 什麼方法 可以 再快一點


(3)

用 celeron 2.8G 跑 Dos 跟 P4_2.8G 比起來

速度會有差嗎


先謝囉











 
  :訪客   Posted:2005-07-25 13:22:00
 
  >照理說 我的 Dos 程式 應該 快了 2.4 / 0.733 =3.27 倍
拜託咧,幾hz是指CPU的工作時脈,並不是所謂的執行速度。

  :quickdddd  E-mail 給會員 Posted:2005-07-25 15:10:00
 
  我試過 一些基本指令 運算
+-*/ , if , for , int[] 讀取 , 排序 都加快了 3 倍以上

唯獨 malloc() 配置的記憶體 讀取 只加快 1.5 倍 左右




  :訪客   Posted:2005-07-26 06:15:00
 
  之前該是桌上型的電腦吧 notebook 只有方便性而已 記憶體不足 散熱不易 硬疊轉速慢 等等原因 實難以分析 時脈增加 不是 相對的成長


  :訪客   Posted:2005-07-30 02:42:00
 
  建議你去問INTEL
東西是他做的
規格是它定的
摩爾定律也是相關的
建議你一併問問
如果按照你的程式來去跑
我看這世界最吃香的一定是INTEL
因為只有他能做的最快
你可花各幾百億買各超級電腦
一秒鐘好像有一萬兆次的頻率 還是一億兆次
這是日本的即將建造的SUPER PC
你可以去參觀一下
YOU ARE MY GOD 好崇拜你
你應該到微軟和INTEL的實驗室
硬體和軟體兼顧
YOU ARE Number 1

  :訪客   Posted:2005-09-18 16:37:00
 
  因為 P3 & P4 的管線深度不一樣,
(P3 是 10階;P4是 20階)
在P4 的CPU 當中,一個指令分解成微指令之後,
如果沒有填滿20階,空出的部份都是用 NOP 跳過,
而NOP本身也是要幾個時脈次數才可執行完畢的,

NOP愈多,CPU閒置就愈嚴重.
而且,不管是 INT 或 MALLOC ,
所指定的都是在記憶體內的位址,而不是在暫存器上面.


[1]



光華商場週刊誌 版權所有 Copyright ©1996~2013 Arclink All Rights Reserved