Autor | Zpráva | ||
---|---|---|---|
user243 Profil |
#1 · Zasláno: 21. 11. 2012, 07:38:08
Hoj,
reviduji si scripty a došel jsem k zápis do souboru, kde jsem používal funkci fwrite(). Všude čtu, že je bezpečnější jednodušší a prostě lepší používat file_put_contents(). Také mě zajímala rychlost, někde psali to a jinde zase ono. Tak jsem si sám vytvořil textový soubor velký skoro 10MB, který jsem pak jako řetězec zapisoval do souboru pomocí obou funkcí. Čas zápisu byl o několik setin kratší u funkce fwrite(). Velikost souboru byla jen pro testovací účely, aby byl vidět rozdíl, normálně s tak velkým textovým souborem nepracuji. Takže je to zanedbatelné, nebo jak Vy sami se k tomu stavíte? Díky. |
||
Tori Profil |
Záleží na tom, jak velká data zapisujete - s fwrite se dá šetřit paměť, kdežto u file_put_contents musí být v paměti celý obsah souboru. Anebo pokud data k zapsání odněkud čtete po částech (třeba z DB), připadá mi vhodnější je rovnou po těch částech zapisovat.
File_put_contents pracuje atomicky, fwrite při přidávání dat na konec souboru taky, v ostatních modech nevím. |
||
user243 Profil |
#3 · Zasláno: 21. 11. 2012, 10:01:15
Většinou jsou to soubory o velikosti pár stovek KB, kde stejně zapisuji na začátek souboru, takže zapisuji vlastně nový řetězec + původní obsah. Tam asi žádná úspora paměti nehrozí.
|
||
Časová prodleva: 11 let
|
0