1. 程式人生 > >數獨項目--項目改進:

數獨項目--項目改進:

進行 輸出 字符串 borde putc 輸出字符串 fputs 說明 數獨

在運用輸入輸出I/O函數中,最開始是運用的fprintf進行寫入,稱為程序1.0版本,在進行性能診斷的時候,我發現在生成1000000個數獨終局過程竟然總共耗費了5分鐘!而用VS診斷中,光fprintf函數就耗費了99.9%的時間,所以我決定加以改進。

表一 輸出字符串100萬次的時間(單位:us)

測試序號

fprintf

fputs

1

645202

428150

2

645396

427962

3

644726

427396

4

645811

424421

5

639071

422962

對比不難發現,對於不需要替換變量的輸出字符(串),使用

fprintf速度還是慢了不少的。

而後的過程中,我用fputc對字符一個一個加入,大大縮短了時間的消耗。進一步的把生成1000000數獨終局時間縮短到了20s,但是,再次運用性能診斷工具進行測試時發現,大部分的時間還是耗費在了打印的基礎上, 也就是說明,打開訪問文件指針的時間是非常長的,如果減少其訪問次數,可以加以改進。

而後我決定,先把字符串進行儲存,將一個數獨終局的所有字符存在一個數組中,最後一次性用fputs進行文件輸入,這樣可以又一次減少時間損耗。

技術分享圖片

數獨項目--項目改進: