簡體   English   中英

最有效的方式寫入控制台?

[英]Most efficient way to write to the console?

我想制作一個iostream類型的類。 我想找到一種最有效的方法來將一組字符寫入屏幕。 思路:

printf-我不想要我自己需要做的類型格式化。
WriteConsole-讀取它比printf慢? 真假?
*匯編 - 不知道如何
其他?

*我主要擔心的是我是否能找到如何做到這一點。 我沒有時間匆忙。

編輯:由於某種原因WriteConsole比較慢。

使用“fwrite”:

fwrite( buffer, size, 1, stderr );

這比你需要的要快得多。 而且你有一個獎勵,你可以讓你的iostream類不僅可以寫入控制台,也可以寫入文件。

我建議嘗試一些方法(你已經提到了一些)並對結果進行基准測試。 您可能會對結果感到驚訝,但即使它們符合您的預期,您至少可以確定您正在盡力而為。 但是對於記錄,如果你發現比printf快得多,我會感到驚訝。

最務實的編碼方式(根據我的經驗)遵循這些方針:

  1. 獲得功能上的功能。
  2. 設置基准來測試您的解決方案是否足夠快。
  3. 如果它不夠快,請嘗試別的,然后再回到2。
  4. 如果它足夠快你就完成了!

聽起來你甚至沒有從你的問題開始設計/編碼。 注意過早優化......

我發現對於使用WriteConsoleOutputCharacter() Windows平均值與stdout fwrite()大致相同,如果不使用<stdio.h> ,則需要少一個文件。 兩者都非常快。 我沒有測試FillConsoleOutputCharacter() 我可能也沒有使用那么好的基准測試。 至於過早的優化,我必須首先解決這個問題,為控制台窗口創建一個很酷的小庫,或多或少地把它變成一個基於Windows的環境,並有一個管理它的總體系統。 我將這個系統用於大學和個人文本游戲。 對於使用cout和朋友的日志記錄和類似行為,盡管做得很慢(呃),也能完成這項工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM