我必須在一個文件上用Perl編寫多行代碼,這些代碼是一行一行地寫入小塊的優點還是缺點,相對於保存所有內容並訪問文件句柄只寫一次?寫入小文件或一次寫入文件會更好嗎?
2
A
回答
6
Perl在引擎下執行文件寫入的緩衝 - 它保存數據直到有一個重要的塊,然後一次寫入。
因此,即使您多次寫入文件句柄,實際寫入文件的次數也是有限的。編寫很多次都不會有意義的性能損失 - 除非您明確規避緩衝(例如設置$|=1
或每次寫入時關閉並重新打開文件)。
如果最方便的話,你應該逐行寫。
1
只要您知道要寫入的數據是什麼,寫入數據通常會更方便,所以要這樣做。重複使用文件句柄沒有缺點。
而且,是的,如果寫入的數據總量大於輸出緩衝區的大小,那麼會節省一些內存,但是,實際上,除非您要寫入幾十兆字節,否則內存消耗的差異可能會減少並不重要,所以請以最清晰和最易於維護的方式進行編寫。
+0
謝謝,我想也許多次訪問文件句柄的行爲可能會很麻煩;這裏不是真正的IT專家。 – 2013-04-10 13:13:25
相關問題
- 1. 一次寫入文件,一次寫入全文
- 2. 將原始數據寫入驅動器或寫入文件會更快嗎?
- 3. Ada:多次寫入文件
- 4. 寫入大文件:打開一次,或重新打開每個寫入事件?
- 5. php一次寫入一行文件
- 6. SaltStack - 每次運行都會寫入受管理的文件,如果只有更新文件才寫入文件?
- 7. 寫入/讀取小文件
- 8. 通過文件寫入文件寫入會給出AccessDeniedException異常
- 9. 寫入變量然後寫入文件或直接寫入文件?
- 10. 用Java編寫文件或序列化會更好嗎?
- 11. 大會MASM:寫入文件
- 12. NSMutableDictionary不會寫入文件
- 13. Python不會寫入文件
- 14. 寫入文件,st_mtime不會更改
- 15. 文件句柄 - 不會寫入文件
- 16. Android:多次寫入同一個文件
- 17. 一次寫入多個文件
- 18. 在文件中一次寫入結構
- 19. 寫入文件或壓縮文件
- 20. 寫入文件
- 21. 寫入文件
- 22. 寫入文件
- 23. 寫入文件
- 24. 寫入文件
- 25. 寫入文件
- 26. 寫入文件?
- 27. 寫入文件夾時文件更改
- 28. Java ZipOutputStream寫入一些文件,但不寫入其他文件
- 29. 將x次寫入文本文件
- 30. C++多次將文本寫入文件
你真的在問,如果在內存中保存所有內容將使用更多的內存而不是將所有內容保存在內存中? – geoffspear 2013-04-10 13:04:38
如果您可以將數據寫入接近創建點的位置並釋放該數據所使用的內存,那麼您將使用較少的內存,而不是將所有數據保存在某處並一次寫入。如果你能給我們一些更具體的信息來幫助我們給出更好的答案,那將是很有幫助的。 – tauli 2013-04-10 13:09:05
抱歉,這個問題沒有得到很好的解決。這是一個普遍的問題,即儘可能快地寫東西比較好,即使它意味着多次訪問文件,或者通過累積數據並一次寫入來限制對文件的訪問次數。 – 2013-04-10 13:11:12