abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 21:55 | Komunita

    Společnost Proxmox Server Solutions stojící za virtualizační platformou Proxmox Virtual Environment věnovala 10 000 eur nadaci The Perl and Raku Foundation (TPRF).

    Ladislav Hagara | Komentářů: 0
    dnes 21:22 | Bezpečnostní upozornění

    Byla vydána nová verze 2.4.65 svobodného multiplatformního webového serveru Apache (httpd). Řešena je bezpečnostní chyba CVE-2025-54090.

    Ladislav Hagara | Komentářů: 0
    dnes 14:22 | IT novinky

    Společnost Proton AG stojící za Proton Mailem a dalšími službami přidala do svého portfolia AI asistenta Lumo.

    Ladislav Hagara | Komentářů: 6
    dnes 12:22 | IT novinky

    Amazon koupil společnost Bee zaměřenou na nositelnou osobní AI aktuálně nabízející náramek Pioneer (YouTube) s mikrofony zaznamenávající vše kolem [𝕏, LinkedIn].

    Ladislav Hagara | Komentářů: 6
    dnes 04:33 | IT novinky

    Společnost Teufel nedávno představila svůj první open source Bluetooth reproduktor MYND.

    Ladislav Hagara | Komentářů: 9
    včera 20:00 | Nová verze

    Byla vydána verze 4.2 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 0
    včera 19:33 | IT novinky

    Anton Carniaux, právní zástupce Microsoft France, pod přísahou: Microsoft nemůže garantovat, že data z EU nepředá do USA bez EU souhlasu, musí dodržovat americké zákony.

    Ladislav Hagara | Komentářů: 26
    včera 15:33 | Nová verze

    Byl vydán Mozilla Firefox 141.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Lokální AI umí uspořádat podobné panely do skupin. Firefox na Linuxu využívá méně paměti. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 141 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    21.7. 22:44 | Bezpečnostní upozornění

    NÚKIB upozorňuje na kritickou zranitelnost v SharePointu. Jedná se o kritickou zranitelnost typu RCE (remote code execution) – CVE-2025-53770, která umožňuje neautentizovaný vzdálený přístup a spuštění kódu, což může vést k úplnému převzetí kontroly nad serverem. Zranitelné verze jsou pouze on-premise verze a to konkrétně SharePoint Server 2016, 2019 a Subscription Edition. SharePoint Online (Microsoft 365) není touto zranitelností ohrožen.

    Ladislav Hagara | Komentářů: 5
    21.7. 21:00 | IT novinky

    Společnost Valve zpřísnila pravidla pro obsah, který je možné distribuovat ve službě Steam. Současně řadu her ze Steamu odstranila. V zásadách a pravidlech přibylo omezení 15: Obsah, který by mohl porušovat pravidla a normy stanovené zpracovateli plateb a souvisejícími sítěmi platebních karet a bankami nebo poskytovateli připojení k internetu. Sem spadají zejména určité druhy obsahu pouze pro dospělé.

    Ladislav Hagara | Komentářů: 0
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (27%)
     (25%)
     (3%)
     (6%)
     (5%)
     (2%)
     (3%)
     (28%)
    Celkem 93 hlasů
     Komentářů: 13, poslední dnes 17:42
    Rozcestník

    Dotaz: rychlost write() a puts()

    3.6.2005 14:12 Martin Tůma | skóre: 39 | blog: RTFM | Praha
    rychlost write() a puts()
    Přečteno: 91×

    Může mi někdo vysvětlit, proč jsou operace provedené na souborech otevřených pomocí open() mnohem pomalejší než operace prováděné se soubory otevřenými pomocí fopen()? (Oboje dvoje na obyčejných souborech)

    Případně pokuď existuje, tak bych uvítal nějaký "trik" jak dosáhnout stejné rychlosti.

    Každý má právo na můj názor!

    Odpovědi

    3.6.2005 14:28 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: rychlost write() a puts()
    Pomalejší rozhodně nejsou, ale záleží na tom, co děláš. Nejspíš s těmi soubory zacházíš tak, že je pro tebe bufferování v stdio velmi výhodné.
    3.6.2005 15:15 Martin Tůma | skóre: 39 | blog: RTFM | Praha
    Rozbalit Rozbalit vše Re: rychlost write() a puts()

    Hmm, takže s tím očividně neumím zacházet... Proč může být druhý kód mnohonásobně pomalejší než první?

    kód 1 - fopen

    	/* Hlavicka */
    
    	if(!fwrite(&header, sizeof(header), 1, fp))
    		return 0;
    	
    	/* Data */
    	
    	if((fr = fopen(file_name, "r")) == NULL)
    		return 0;
    
    	while(c = getc(fr), !feof(fr))
    		putc(c, fp);
    
    	if(fclose(fr) == EOF)
    		return 0;
    

    kód 2 - open

    	/* Hlavicka */
    
    	if(write(fp, &header, sizeof(header)) != sizeof(header))	
    		return 0;
    
    	/* Data */
    	
    	if((fr = open(file_name, O_RDONLY)) == -1)
    		return 0;
    
    	while(read(fr, &c, 1) > 0)
    		write(fp, &c, 1)
    			
    	if(close(fr) == -1)
    		return 0;
    

    fp je deskriptor normálního otevřeného souboru, v prvnim případě FILE *, ve druhém int.

    Program ve kterém to potřebuju použít by měl bejt obdobou tar -cvvzf. Potřeboval bych proto vytvořený archiv po znaku rovnou posílat pomocí roury komprimátoru, ale pomocí write() a read() je to strašně pomalý - tak, že mnohem rychlejší je nejdříve vytvořit archiv a pak ho znova načítat a komprimovat...

    Každý má právo na můj názor!
    3.6.2005 15:22 0
    Rozbalit Rozbalit vše Re: rychlost write() a puts()

    Co zkusit ve druhem pripade misto jednoho znaku treba 1000?:

    char pole[1000];
    while(read(fr,pole,1000))
        write(fp,pole,1000);
    

    Duvod je ten, ze kdyz jedes znak po znaku, tak pro kazdou operaci pouzijes jedno preruseni a to bez ohledu na to, kolik mas dat, takze procesor se musi porad starat o preruseni misto toho aby dal prikaz pameti/disku, ze ma neco udelat.

    3.6.2005 15:28 Martin Tůma | skóre: 39 | blog: RTFM | Praha
    Rozbalit Rozbalit vše Re: rychlost write() a puts()

    To mě taky napadlo, ale pro LZW kompresy potřebuju ty znaky pak dostávat stejně po znaku (šlo by si ale udělat nějakej buffer). Nicméně proč je to pomocí fputs() "normálně" rychlý a pomocí write() tak pomalý?

    Každý má právo na můj názor!
    3.6.2005 15:40 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: rychlost write() a puts()
    Protože write() je sycall, kdežto fputc() je téměř vždy triviální operace přidání znaku do nějakého bufferu, jen jednou za čas se něco zapíše. Ostatně na fputc() nejvíc sežere zamykání, fputc_unlocked() už je úplně triviální.
    3.6.2005 15:41 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: rychlost write() a puts()
    Protože fputs bufferuje, takže buď používej stdio, nebo si napiš vlastní funkci, která bude dělat totéž.
    3.6.2005 15:43 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: rychlost write() a puts()
    Takže potřetí, trochu polopatičtěji: funkce pracující s descriptorem (open, read, write) jsou low=level, přímo provádějí operaci. Funkce ktere pracují s FILE strukturou provádějí buffering. Při čtení/zápisu po jednom byte má opravdu velký význam (a to je důvod proč tam je).
    3.6.2005 15:56 martin
    Rozbalit Rozbalit vše Re: rychlost write() a puts()
    tak to už máme putc(), puts() a + ještě fputs(). m.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.