[英]Most efficient way to write to the console?
我想制作一個iostream類型的類。 我想找到一種最有效的方法來將一組字符寫入屏幕。 思路:
printf-我不想要我自己需要做的類型格式化。
WriteConsole-讀取它比printf慢? 真假?
*匯編 - 不知道如何
其他?
*我主要擔心的是我是否能找到如何做到這一點。 我沒有時間匆忙。
編輯:由於某種原因WriteConsole比較慢。
使用“fwrite”:
fwrite( buffer, size, 1, stderr );
這比你需要的要快得多。 而且你有一個獎勵,你可以讓你的iostream類不僅可以寫入控制台,也可以寫入文件。
我建議嘗試一些方法(你已經提到了一些)並對結果進行基准測試。 您可能會對結果感到驚訝,但即使它們符合您的預期,您至少可以確定您正在盡力而為。 但是對於記錄,如果你發現比printf快得多,我會感到驚訝。
最務實的編碼方式(根據我的經驗)遵循這些方針:
聽起來你甚至沒有從你的問題開始設計/編碼。 注意過早優化......
我發現對於使用WriteConsoleOutputCharacter()
Windows平均值與stdout
fwrite()
大致相同,如果不使用<stdio.h>
,則需要少一個文件。 兩者都非常快。 我沒有測試FillConsoleOutputCharacter()
。 我可能也沒有使用那么好的基准測試。 至於過早的優化,我必須首先解決這個問題,為控制台窗口創建一個很酷的小庫,或多或少地把它變成一個基於Windows的環境,並有一個管理它的總體系統。 我將這個系統用於大學和個人文本游戲。 對於使用cout
和朋友的日志記錄和類似行為,盡管做得很慢(呃),也能完成這項工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.