1
我在Linux上有一個C++應用程序,它將一些數據寫入SSD。 應用程序以〜100 MBytes /秒的速度寫入。使用SSD時,使用一個線程寫20個不同的文件而不是20個線程會更好嗎?
每秒鐘,應用程序將20個新文件寫入磁盤。除了這20個線程外,應用程序的其他線程還執行其他邏輯和維護。現在,我的應用程序使用多個線程同時寫入多個文件,每個線程寫入一個文件。
最好是更改代碼的設計,並讓每個線程每秒寫入20個新文件?
爲什麼不試試呢,衡量它的總執行時間是最好的,並找出?與任何優化問題一樣,您的結果將取決於系統,應用程序的行爲以及任何其他因素。也就是說,多個線程可以允許並行準備數據;每個線程都會阻塞輸出操作,但這不會阻止其他正在運行的線程準備自己的寫操作。線程之間的同步會影響性能,I/O調度程序和寫入的性質也會影響性能。準備一個大塊並讓操作系統將它寫入單個文件通常會更好。 – Andrew