這是關於一個比賽的計劃。程序輸出可以通過程序本身重定向到管道嗎?
我正在提交一個程序&在總執行速度方面,我發現我的指標比最高得分者要慢。所有其他(頁面錯誤,內存...)是相似的。我發現當我在沒有使用printf(或寫入)的情況下運行我的程序時,我的總執行速度(在我自己的pc中測得)似乎相似。
的競爭將其輸出重定向評估輸出(帶有一個管道,我想)到文件&與他們匹配它的MD5 ....
我的問題是,有沒有以任何方式使用C東西,它不寫入輸出流,但管道仍然獲得輸入。或者我甚至可以把問題弄錯了。但無論如何,我正在修復。
我一直在優化算法,打動了我的腦袋。順便說一句,他們接受許多人試圖優化的makefile。對我而言,這兩個優化標誌都沒有奏效。我不知道還有什麼可以做的呢...
'stdout'應該被緩衝,應該會產生相當低的開銷。你能否嘗試將'printf'調用改爲'sprintf'到緩衝區中,看看它是否仍然不好?另外,你的輸出是否需要格式化? – Hasturkun
如果他們將輸出重定向到文件,爲什麼不按照他們的方式在外部執行?當你在linux中執行命令時,寫:'./program> my_output' – Shahbaz
@Hasturkun。每個測試用例產生的輸出少於512個字符,512是我的緩衝區大小......你會建議什麼緩衝區大小,因爲我不知道測試用例的數量。 – loxxy