Je tu opět apríl. Společnost Razer představila holící myš Razer Razer. Vědci z CERNu navrhují 25hodinový den. Společnost Elgato představila kolekci Elgato Home. Společnost Nothing Beer (5.1%). Další aprílové novinky například na April Fools' Day On The Web.
Před 25 lety byl uvolněn zdrojový kód balíku aplikací Netscape Communicator jako open source (např. dobová zpráva CNET), z čehož vzešel projekt Mozilla – ten si výročí nyní připomíná.
Na GOG.com běží Spring Sale. Při té příležitosti lze získat zdarma počítačovou hru Deep Sky Derelicts.
Sound Open Firmware, projekt Linux Foundation, open source audio DSP firmware a SDK, byl vydán ve verzi 2.5.0. Přináší podporu platformy Mediatek mt8188 nebo nový audio modul ARIA (Automatic Regressive Input Amplifier Module).
Byla vydána nová verze 5.8 programovacího jazyka Swift (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu. Ke stažení budou oficiální binární balíčky pro Ubuntu 18.04, Ubuntu 20.04, Ubuntu 22.04, CentOS 7, Amazon Linux 2 a Red Hat Universal Base Image 9.
Byla vydána nová verze 1.77 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.77 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána beta verze Ubuntu 23.04 s kódovým názvem Lunar Lobster. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 23.04 mělo vyjít 20. dubna 2023.
Linuxová distribuce OpenMandriva byla vydána ve verzi ROME 23.03. Název ROME říká, že se jedná se o průběžně aktualizovanou (rolling) edici. Stabilní edice nese název Rock, aktuálně OpenMandriva Lx 4.3 Dysprosium.
Tento pátek od 14:00 proběhne v Brně na FI MUNI konference DevConf Mini. Na programu je celá řada zajímavých přednášek od testování releasů Fedory, přes super počítače nebo Big Data, až po závody autonomních aut. Konferenci bude možné sledovat i na online streamu.
Minulý týden proběhla hackerská soutěž Pwn2Own Vancouver 2023. Adobe Reader, Microsoft SharePoint, Oracle VirtualBox, Tesla, Ubuntu Desktop, Windows 11, macOS, Microsoft Teams, VMWare Workstation. Vše hacknuto. Synacktiv získal 530 000 dolarů a Teslu Model 3.
Řešení dotazu:
int gettimeofday(struct timeval *tv, struct timezone *tz);
zavoláš ju pred začiatkom čítania a po skončení čítania a tie hodnoty odčítaš. Pokiaľ sa čítanie robí po malých kúskoch a je roztrúsené na mnohých veciach, tak to bude zložitejšie. Možno by som využiť profiler. Na druhej strane ak ťa zaujíma skutočne len rýchlosť prenosu dát a nie to ako rýchlo ich dokážeš spracovať, tak by mohol stačiť hdparm
, nie?
#include <sys/times.h> clock_t times(struct tms *buf);Návratová hodnota v linuxu je počet ticků od bootu. Pomocí sysconf(_SC_CLK_TCK) vydělit a máme čas. Bohužel v Linuxu dochází častěji k přetejkání této hodnoty, obzvláště na 32bit systému.
times
udává čas CPU procesem spotřebovaný. Pro měření doby čtení z disku je to nepoužitelný údaj, protože CPU se během toho čtení většinou nudí.
Možná jsi měl na mysli funkci time
. Ta ale vrací čas jenom s přeností na celé sekundy, a navíc je stejně zase implementovaná pomocí gettimeofday
, která se ti nelíbí.
Pro čas s vysokým rozlišením a neovlivněný přestupnými sekundami lze použít clock_gettime(CLOCK_MONOTONIC, ...)
.
Seknul jsem se. Tohle
times
udává čas CPU procesem spotřebovaný. Pro měření doby čtení z disku je to nepoužitelný údaj, protože CPU se během toho čtení většinou nudí.
times
sice udává, ale navíc vrací i tu hodnotu, o které psal Jardík. Takže v zásadě použitelná je. I tak je ale lepší použít CLOCK_MONOTONIC
The function times returns the number of clock ticks that have elapsed since an arbitrary point in the past. For Linux this point is the moment the system was booted. This return value may overflow the pos- sible range of type clock_t. On error, (clock_t) -1 is returned, and errno is set appropriately.Pokud to pak vydělíš např. počtem ticků za jednotku času, dostaneš čas.
On Linux, the "arbitrary point in the past" from which the return value of times() is measured has varied across kernel versions. On Linux 2.4 and earlier this point is the moment the system was booted. Since Linux 2.6, this point is (2^32/HZ) - 300 (i.e., about 429 million) seconds before system boot time.
$ uptime 21:45:02 up 1 day, 4:07, 2 users, load average: 0.00, 0.03, 0.06 $ ./a.out 1441655586, jiffy: 100, HZ: 300 bash$ bc -l <<<"(1441655586/100-2^32/300+300)/60/60" 27.86061296296296296296Ale mělo by to být 28 hodin a něco, ne 27. Navíc těch manuálových 429 milionů je také divné, to by museli mít HZ 10 a ne obvyklých 100 (dnes spíš i víc). Holt ty manuély... :)
clock_gettime
kterou tu michich zmínil.
Nebo pokud mate jadro >= 2.6.20 tak lze pouzit utilitky iotop
http://guichaz.free.fr/iotop/
int fd = open("/dev/hda", O_RDONLY); char buffer[2048]; int i; for(int i = 0; i < 1024 * 50; i++) { read(fd, buffer, 2048); } close(fd);A potom bud dodelat praci s casem (t1, cteni, t2 = now - t1) anebo to cele zmerit timem a dopocitat si to podle objemu prenesenych dat rucne...
Tiskni
Sdílej: