Sembra esserci molta confusione riguardo allo scopo dei due argomenti "dimensione" e "conteggio" in fwrite(). Sto cercando di capire quale sarà più veloce -fwrite() - l'effetto della dimensione e il conteggio delle prestazioni
fwrite(source, 1, 50000, destination);
o
fwrite(source, 50000, 1, destination);
Questa è una decisione importante nel mio codice come questo comando sarà eseguito milioni di volte.
Ora, potrei semplicemente saltare a testare e utilizzare quello che dà risultati migliori, ma il problema è che il codice è destinato a MOLTE piattaforme.
Quindi,
come posso ottenere una risposta definitiva alla quale è meglio tra le piattaforme?
La logica di implementazione di fwrite() varia da piattaforma a piattaforma?
mi rendo conto ci sono domande simili (What is the rationale for fread/fwrite taking size and count as arguments?, Performance of fwrite and write size), ma capisco che questa è una domanda diversa per quanto riguarda lo stesso problema. Le risposte a domande simili non sono sufficienti in questo caso.
Ho appena eseguito alcuni test su OS-X, scrivendo dieci file da 100 MB e non c'era alcuna differenza tra l'ordine dei parametri o quando si utilizza write (2) anziché fwrite. Per quanto riguarda altre piattaforme, non posso dire. –