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 06:00 | Nová verze

Po necelém roce od vydání verze 0.67 byla vydána verze 0.68 populárního telnet a ssh klienta PuTTY. Podrobnosti v přehledu změn. Řešeny jsou také bezpečnostní chyby.

Ladislav Hagara | Komentářů: 0
včera 21:32 | Nasazení Linuxu

Canonical představuje nejnovější verzi chytré helmy DAQRI s Ubuntu pro rozšířenou realitu. K vidění bude příští týden v Barceloně na veletrhu Mobile World Congress 2017.

Ladislav Hagara | Komentářů: 0
včera 21:31 | Pozvánky

Pro zájemce o hlubší znalosti fungování operačních systémů připravila MFF UK nový předmět Pokročilé operační systémy, v rámci něhož se vystřídají přednášející nejen z řad pracovníků fakulty, ale dorazí také odborníci ze společností AVAST, Oracle, Red Hat a SUSE. Tento předmět volně navazuje na kurz Operační systémy ze zimního semestru, ale pokud máte praktické zkušenosti odjinud (například z přispívání do jádra Linuxu) a chcete si

… více »
Martin Děcký | Komentářů: 0
včera 21:30 | Pozvánky

Czech JBoss User Group Vás srdečně zve na setkání JBUG v Brně, které se koná ve středu 1. března 2017 v prostorách Fakulty Informatiky Masarykovy Univerzity v místnosti A318 od 18:00. Přednáší Tomáš Remeš a Matěj Novotný na téma CDI 2.0 - New and Noteworthy. Více informací na Facebooku a na Twitteru #jbugcz.

mjedlick | Komentářů: 0
20.2. 23:45 | Zajímavý software

Na blogu Qt bylo představeno Qt 3D Studio. Jedná se o produkt dosud známý pod názvem NVIDIA DRIVE™ Design Studio. NVIDIA jej věnovala Qt. Jedná se o několik set tisíc řádků zdrojového kódu. Qt 3D Studio bude stejně jako Qt k dispozici jak pod open source, tak pod komerční licencí. Ukázka práce s Qt 3D Studiem na YouTube.

Ladislav Hagara | Komentářů: 10
20.2. 17:50 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice slaví 5 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně byla založena ale až 17. února 2012.

Ladislav Hagara | Komentářů: 0
20.2. 12:50 | Komunita

Mozilla.cz informuje, že dosud experimentální funkce Page Shot z programu Firefox Test Pilot (zprávička) se stane součástí Firefoxu. Page Shot je nástroj pro vytváření snímků webových stránek. Umí výběr oblasti, prvku stránky (např. odstavce), nebo uložení snímku celé stránky. Snímky lze ukládat na disk nebo nahrávat na server Mozilly. Nedávno bylo oznámeno, že se součástí Firefoxu stane Activity Stream.

Ladislav Hagara | Komentářů: 32
20.2. 04:10 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 23
19.2. 15:55 | Zajímavý projekt

Vyzkoušet si příkazy a vyřešit několik úkolů lze na stránkách Commandline Challenge (CMD Challenge). Úkoly lze řešit různými způsoby, důležitý je výsledek. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

Ladislav Hagara | Komentářů: 18
18.2. 17:35 | Bezpečnostní upozornění

Německá Bundesnetzagentur (obdoba českého ČTU) zakázala na německém území prodej panenky Cayla kvůli „špionáži“ dětí. Tato elektronická hračka obsahuje mikrofon, reproduktor a kameru a bezdrátové komunikační rozhraní, pomocí kterého se hračka připojuje na servery výrobce. Takovýmto způsobem může hračka pomocí umělé inteligence „odpovídat“ na dotazy dítěte. Hlavní problém bude ale asi někde jinde, podle prvotních zpráv může

… více »
Petr Tomášek | Komentářů: 34
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (14%)
 (2%)
 (71%)
 (3%)
 (10%)
Celkem 680 hlasů
 Komentářů: 61, poslední včera 13:06
Rozcestník

Dotaz: rychlost kodu

15.9.2006 00:27 secido | skóre: 27
rychlost kodu
Přečteno: 100×
Porovnaval som rychlost programu (napisany v C) pod roznymi operacnymi systemami a nestihal som sa divit. HW je Turion@1.8. Vo win32/gcc3 bezal 40s, linux/gcc3 aj gcc4 amd64 90s (!) a nakoniec freebsd/gcc3 amd64 28s. Mam niekde problem alebo je ten linux taky pomaly?

Odpovědi

15.9.2006 00:29 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
Rozbalit Rozbalit vše Re: rychlost kodu
To je bez toho programu těžko posoudit :-) (z kolika měření jsou ty výsledky?)
Copak toho není dost?
15.9.2006 00:48 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Z dvoch-troch behov. Linux sa mi podarilo stiahnut na 76s v single user s vypnutym throttlingom. Ale aj tak je to vela, nechapem. Preco bez programu tazko posudit? gcc je ine na bsd ako v linuxe? Optimalizacia bola zapnuta -O2.
15.9.2006 13:52 _
Rozbalit Rozbalit vše Re: rychlost kodu
cpufreq v jadre mas nastaveny na powersave governor, ze?

jaky parametry jsi pouzil pri kompilaci?

jaky parametry se doplnily ze specs z gcc?

na kolika mistech provadis dlopen/fork?
15.9.2006 17:52 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Ked mi napises ako tieto veci zistim, mozem ich doplnit.
15.9.2006 18:01 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Skusil som aj na inom 64bitovom linuxe - konkretne Ubuntu 6.06 TLS x86_64, gcc 4.0.3, procesor AMD Athlon(tm) 64 Processor 3500+ (2.2GHz), kernel 2.6.15.7. Priemerny cas 1m, z toho 99% user. dlopen() a fork() vobec nepouzivam, je to ansi C (snad :-). Parametre pri kompilacii gcc -O2 -Wall -g.
16.9.2006 09:09 *
Rozbalit Rozbalit vše Re: rychlost kodu
No ja to nepouzivam, takze jen po pameti, kdyz jsem to pred par lety objevil a vypnul... tusim /proc/cpufreq - jestli neexistuje ten soubor a existuje radek proc v /proc/filesystem tak to nepouzivas.

parametry si sem napsal.

cat /usr/lib/gcc-lib/*/*/specs

a fork a dlopen si nepouzil.

a jeste maji knihovny premapovany adresni prostory na nahodny mista prelinkem?

pouzivas knihovny s debug symbolama? jak casto se volaji knihovni funkce? (ltrace)
15.9.2006 00:59 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Pridavam kus kodu, ktory sa toci v slucke. Boli to moje programatorske zaciatky, tak sa nesmejte :-). Pozeram, ze sa pouziva viac globalnych premmenych ako by bolo zdrave.
void PridajRiadokNovy(void) {
  int i, j, tmp, tmp2, xx=dlzka;

  tmp = dalsi * c_tz;
  for(i=0;i<c_tz;i++) {
    if(znacka2[pole[tmp+i]]) continue;
    for(j=0;j<c_max;j++) {
      if(!znacka[tmp2 = pole2[pole[tmp+i]*c_max+j]]) {
        znacka[tmp2]++;
        dlzka++;
      }
    }
    znacka2[pole[tmp+i]]++;
  }
  predch=dlzka-xx;
  if(!dalsi) for(i=0;i<c_rt;i++) zrychli[i]=predch;
  riadok[dalsi]++;
  cnt++;
}

void DalsiRiadokNovy(void) {
  int i, j, k, tmp, tmp2;
  mini = 0;

  for(k=0;k<c_rt;k++){
    if(!riadok[k]) {
      if(zrychli[k]<=mini) continue;
      tmp = k * c_tz;
      teraz = 0;
      memset(znacka3, 0, c_ru);
      for(i=0;i<c_tz;i++) {
        if(znacka2[pole[tmp+i]]) continue;
        for(j=0;j<c_max;j++)
          if(!znacka[tmp2 = pole2[pole[tmp+i]*c_max+j]] && !znacka3[tmp2]) {
            teraz++;
            znacka3[tmp2]++;
          }
      }
      zrychli[k]=teraz;
      if(teraz > mini) {
        dalsi = k;
        mini = teraz;
      }
      if(predch==teraz) break;
    }
  }
}
15.9.2006 01:09 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
Rozbalit Rozbalit vše Re: rychlost kodu
Právě proto. Když máme gcc víceméně stejný, tak z něho vyleze víceméně stejný kód a ten se těžko bude vykonávat různě rychle. Takže problém by měl být někde mimo program, v tom co volá, ne?

Co vypisuje time na FreeBSD a Linux, nejsou tam třeba nějaké radikální rozdíly v poměrech jednotlivých složek?
Copak toho není dost?
15.9.2006 13:53 _
Rozbalit Rozbalit vše Re: rychlost kodu
> Právě proto. Když máme gcc víceméně stejný, tak z něho vyleze víceméně stejný kód a ten se těžko bude vykonávat různě rychle.

ne. rozdil muze byt i sto nasobny.
15.9.2006 13:54 _
Rozbalit Rozbalit vše Re: rychlost kodu
> rozdil muze byt i sto nasobny.

samozrejme s tim samym kompilatorem na tom samem systemu s tim samym kodem. opravdu zalezi na tom, jak se to prelozi.
15.9.2006 17:49 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Kod je rovnaky samozrejme, kompilator nie uplne rovnaky. Na win32 som pouzil mingw gcc 3.4.2. Linux gcc 4.0.3, 3.3 aj 3.4 s priblizne rovnakym vysledkom na urovni cca 2x windows. Nieco asi bude v tom systeme rozbite, skusim pozriet co vsetko tam bezi. FreeBSD 7.0 current s distribucnym gcc (tusim 3.4) sa javi ako uplne eso co sa tyka rychlosti a aj napr. pri kompilacii akehokolvek kodu je rychle ako blesk.
15.9.2006 20:04 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: rychlost kodu
Pokud jsem něco zásadního nepřehlédl, ten fragment kódu, který jste tu ukázal, nevolá žádný syscall, přímo ani nepřímo. Takže mi není moc jasné, jak z rychlosti jeho provádění chcete vyvozovat závěry o rychlosti Linuxu
15.9.2006 20:57 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Jednoducho skompilovany program bezi na linuxe pomalsie ako na inom systeme, ja sa len pytam preco resp. ako je take nieco mozne. Lebo ked sa takto sprava jeden program, mozu sa aj ine.
18.9.2006 16:06 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Nemoze to byt rozdielnymi libc, kedze volam memset?
18.9.2006 18:09 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: rychlost kodu
U aktuálních verzí gcc by AFAIK měly funkce typu memset() být implementovány přímo překladačem, takže by ani na volání knihovny nemělo dojít. Ale to byste se asi musel podívat do výsledného kódu (např. si to nechat přeložit jen do assembleru).
18.9.2006 19:03 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Kazdopadne libc implementacia vo freebsd pre amd64 sa lisi od implementacie linuxovej glibc a pre i386 je tiez uplne ina. Skusil som tento kod:
$ cat memset.c
int main() {
  int num = 1;
  memset(&num, 0, sizeof(num));
}
$ gcc -S memset.c
$ cat memset.s
        .file   "memset.c"
        .text
.globl main
        .type   main, @function
main:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $24, %esp
        andl    $-16, %esp
        movl    $0, %eax
        subl    %eax, %esp
        movl    $1, -4(%ebp)
        movl    $4, 8(%esp)
        movl    $0, 4(%esp)
        leal    -4(%ebp), %eax
        movl    %eax, (%esp)
        call    memset
        leave
        ret
        .size   main, .-main
        .section        .note.GNU-stack,"",@progbits
        .ident  "GCC: (GNU) 3.3.5 (Debian 1:3.3.5-13)"
Co z toho vidim?
AraxoN avatar 18.9.2006 20:16 AraxoN | skóre: 45 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: rychlost kodu
Toto je dôležité
call    memset
a znamená to, že memset() je spracovaný ako každá iná funkcia. T.j. že sa na stack nahádžu jej parametre a potom sa zavolá nejaký ďalší kód od inokiaľ, ktorý podľa tých parametrov niečo robí. Ak by to bolo nadrôtované v GCC, tak by tam nebolo volanie funkcie ale nejaká asm inštrukcia s prefixom "rep", alebo "loop".
A fine is a tax for doing wrong. A tax is a fine for doing well.
AraxoN avatar 18.9.2006 20:58 AraxoN | skóre: 45 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: rychlost kodu

hehe, odpovedám sám na seba... :-)

Pozeral som ako sa to kompiluje u mňa v GCC 4.1, a vo výsledku nikdy nie je call, a dokonca ani rep alebo loop. Záhada?

A fine is a tax for doing wrong. A tax is a fine for doing well.
michich avatar 18.9.2006 21:20 michich | skóre: 50 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: rychlost kodu
Žádná záhada. V tomto případě překladač ví, že má vynulovat pamět o délce sizeof(int), což jde udělat jedinou instrukcí bez jakéhokoliv cyklu.
AraxoN avatar 18.9.2006 21:36 AraxoN | skóre: 45 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: rychlost kodu
Njn, ale secidovi vyššie to vygenerovalo "call memset"... Skúšal som rôzne stupne optimalizácie, ale nikdy z toho u mňa nebol call, rep či loop.
A fine is a tax for doing wrong. A tax is a fine for doing well.
18.9.2006 21:42 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: rychlost kodu
Jenže on použil gcc 3.3.5 (nebo něco, co se za něj vydává :-) ).
michich avatar 18.9.2006 22:09 michich | skóre: 50 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: rychlost kodu
Jo, to je tím. Teď jsem si ověřil, že gcc 3.3.6-13 a 3.4.6-4 generují call memset, kdežto 4.1.1-13 ne.
18.9.2006 21:29 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: rychlost kodu
Neviděl bych v tom záhadu, odpovídá to tomu, co jsem psal: že některé funkce typu memset() nebo memcpy() mají novější verze gcc jako builtin. To naznačuje už fakt, že když zkusíte zkompilovat to, co zde bylo uvedeno, pomocí gcc 4.1, dostanete tuto chybu:
  mike@lion:~/tmp> gcc -S memset.c
  memset.c: In function ‘main’:
  memset.c:3: warning: incompatible implicit declaration of built-in function ‘memset’
19.9.2006 09:10 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
V poriadku, ale preco potom:
$ gcc --version|grep gcc
gcc (GCC) 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
$ gcc -O2 -S gext.c
$ grep memset gext.s
        call    memset
        call    memset
        call    memset
        call    memset
        call    memset
$ grep memset gext.c
      memset(znacka3, 0, c_ru);
  memset(riadok, 0, c_rt);
  memset(znacka, 0, c_ru);
  memset(sucet, 0, sizeof(int)*c_rz);
  memset(znacka2, 0, c_rz);
19.9.2006 09:24 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Stiahol som si gcc-core-4.1.1.tar.bz2 ale nevidim tam ziadnu asm implementaciu memset, len toto:
$ find . -name '*memset*'
./gcc/config/memset.c
./libiberty/memset.c
./libssp/memset-chk.c
co je v skutocnosti trivialny cyklus:
$ cat gcc/config/memset.c
/* Public domain.  */
#include <stddef.h>

void *
memset (void *dest, int val, size_t len)
{
  unsigned char *ptr = dest;
  while (len-- > 0)
    *ptr++ = val;
  return dest;
}
19.9.2006 09:32 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Asm implementacie vo freebsd a linuxe. Hladajte rozdiel :-).
23.9.2006 21:40 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Este maly navrat, memset() asi nie je dovod. Skompiloval som staticku binarku (ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, statically linked, for GNU/Linux 2.2.0, stripped) a tato bezi na spominanom athlone (jadro 2.6.15-27-k7 z ubuntu) rychlejsie ako na duron 1600 (jadro 2.6.15.3 kompilovane pre i386).
23.9.2006 22:24 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: rychlost kodu
To o ničem nevypovídá, i když to slinkujete staticky, používá se pořád stejná implementace té funkce.
23.9.2006 22:39 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Ano, pouziva sa rovnaka tak by aj rychlost mala byt rovnaka resp. zodpovedajuca rozdielu vo vykone hw, alebo sa mylim?
23.9.2006 23:01 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: rychlost kodu
Snažíme se vám od začátku vysvětlit, že rozdíl bude nejspíš v tom, že nespouštíte v obou případech totéž.
23.9.2006 23:11 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Ak potom spustit to iste, ked ten isty skopirovany staticky linkovany spustitelny subor to iste nie je?
23.9.2006 23:17 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: rychlost kodu
On je to snad jediný proces, který vám v tom systému běží?
23.9.2006 23:28 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Pochopitelne, ze nie, ale nebezi tam nic co by zatazovalo CPU tak, aby mohli vzniknut taketo rozdiely.
23.9.2006 23:52 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: rychlost kodu
To ale těžko můžeme posoudit, pokud jste jediný, kdo ví, o jakém programu je to vlastně řeč…
23.9.2006 23:08 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Takze pomocou vynikajuceho nastroja menom profiler som definitivne vylucil memset. Dalsou skvelou utilitkou gcov som zistil kolko krat sa ktory riadok vykona, snad pomoze:
     2931:   46:void DalsiRiadokNovy(void) {
        -:   47:  int i, j, k, tmp, tmp2;
     2931:   48:  mini = 0;
        -:   49:
218359778:   50:  for(k=0;k<c_rt;k++){
218359667:   51:    if(!riadok[k]) {
216130000:   52:      if(zrychli[k]<=mini) continue;
  1236087:   53:      tmp = k * c_tz;
  1236087:   54:      teraz = 0;
  1236087:   55:      memset(znacka3, 0, c_ru);
  7416522:   56:      for(i=0;i<c_tz;i++) {
  6180435:   57:        if(znacka2[pole[tmp+i]]) continue;
135608850:   58:        for(j=0;j<c_max;j++)
130586300:   59:          if(!znacka[tmp2 = pole2[pole[tmp+i]*c_max+j]] && !znacka3[tmp2]) {
 55771154:   60:            teraz++;
 55771154:   61:            znacka3[tmp2]++;
        -:   62:          }
        -:   63:      }
  1236087:   64:      zrychli[k]=teraz;
  1236087:   65:      if(teraz > mini) {
    27552:   66:        dalsi = k;
    27552:   67:        mini = teraz;
        -:   68:      }
  1236087:   69:      if(predch==teraz) break;
        -:   70:    }
        -:   71:  }
      111:   72:}
24.9.2006 00:39 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Az tak definitivne som ho nevylucil :-), je to fakt memset(). Mojim nespravnym pouzivanim profilera na dynamicky linkovanu binarku som dostaval skreslene vysledky, staticka ukazuje v com je problem. Casy su trochu dlhsie kvoli zapnutemu profileru.
athlon@750 (116.04 s)

  %   cumulative   self              self     total
 time   seconds   seconds    calls   s/call   s/call  name
 83.83    242.63   242.63                             memset
 15.50    287.48    44.85     2931     0.02     0.02  DalsiRiadokNovy

duron@1600 (268.35 s)

  %   cumulative   self              self     total
 time   seconds   seconds    calls   s/call   s/call  name
 93.79    628.86   628.86                             memset
  6.07    669.56    40.70     2931     0.01     0.01  DalsiRiadokNovy

athlon64@2200 (61.91 s)

  %   cumulative   self              self     total
 time   seconds   seconds    calls   s/call   s/call  name
 92.94    143.58   143.58                             memset
  6.75    154.01    10.43     2931     0.00     0.00  DalsiRiadokNovy
Pricina je jasna, teraz uz len ako vyriesit problem.
15.9.2006 20:17 machr | skóre: 2 | blog: machr
Rozbalit Rozbalit vše Re: rychlost kodu
Pastni sem celej ten program, ja to otestuju na svym pocitaci.

Zajimalo by me proc tam pouzivas -g ????
(__) (oo) /-------\/ / | || * ||----|| ~~ ~~
15.9.2006 20:52 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Pravdepodobne kvoli debugeru, ale aj stripnuty bezi rovnako dlho.
15.9.2006 21:38 cynik
Rozbalit Rozbalit vše Re: rychlost kodu
Podle pomeru casu to vypada tak, ze jsi pri kompilaci toho programu na linuxu nepouzil direktivy pro specifikaci procesoru a je to tedy prelozene na tu uplne nejbeznejsi 386ku. Pokud tam das svuj processor, casy pod ruznymi OS se pravdepodobne budou lisit jen minimalne.
15.9.2006 22:06 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Mam taky pocit, ze problem bude v jadre i ked to znie zvlastne. Prave som trochu otestoval moje stare PC k7@750Mhz a cuduj sa svete, casy sa lisili tak +/- 5 sekund od priemeru. Priemer 112s na PC minimalne 3x pomalsom je slusny. Testoval som vo win, linux a opensolaris. Potom som binarku skompilovanu na linuxe bez specifikacie CPU (cize 386 ak sa nemylim) preniesol na system duron@1.6GHz - vysledok 260s. Na systeme bolo jadro kompilovane na 386ku. Cize vychadza mi z toho jadro. Ale 10 sekundovy rozdiel medzi win32 a freebsd64 je stale zahada.
15.9.2006 22:18 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: rychlost kodu
Už jsem vás na to upozorňoval jednou: v tom kódu nevoláte naprosto žádný syscall. Tak jak může, proboha, být problém v jádře?
15.9.2006 22:36 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Ano? Tak potom preco binarka bezi na pomalsom hw rychlejsie, ked to nie je v jadre?
15.9.2006 22:40 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
Rozbalit Rozbalit vše Re: rychlost kodu
Když to nestráví v jádře vůbec žádný čas, protože to tam nic nevolá, jak by mohl kód jádra zdržovat?
Copak toho není dost?
15.9.2006 22:44 Kníže Ignor | skóre: 19 | blog: stoupa
Rozbalit Rozbalit vše Re: rychlost kodu
To není pravda, že :-) Třeba může mít linux naprosto debilní plánovač...

Ale problém bych hledal někde jinde, rozhodně si nepoběžím nainstalovat freebsd :-P
Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
15.9.2006 22:51 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: rychlost kodu
Pravda… Ale něco mi říká, že kdyby na tom byl linuxový scheduler tak špatně, aby kvůli němu běžel na víceméně nezatíženém stroji (předpokládám, že tazatel to nebenchmarkoval na systému se stovkou dalších aktivních procesů) dvakrát až třikrát déle, někdo by si toho všiml a něco s tím udělal… :-)
16.9.2006 08:56 *
Rozbalit Rozbalit vše Re: rychlost kodu
...treba si toho prave nekdo vsiml? ;-)
15.9.2006 22:51 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
Rozbalit Rozbalit vše Re: rychlost kodu
Což je taky možnost, pravda. Právě proto by bylo hezké vidět výstup time…
Copak toho není dost?
15.9.2006 22:56 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
FreeBSD (pustane v X)
real    0m32.367s
user    0m29.428s
sys     0m0.118s
16.9.2006 01:40 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
Rozbalit Rozbalit vše Re: rychlost kodu
A srovnání s tím Linuxem?
Copak toho není dost?
16.9.2006 23:36 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
real    1m20.233s
user    1m15.656s
sys     0m0.800s
15.9.2006 22:49 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Dobre beriem, lenze stale som sa nedozvedel v com je chyba. Nejaky dalsi napad?
15.9.2006 22:45 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: rychlost kodu
Pravděpodobně špatná optimalizace - buď je to rukama nebo překladačem. Ale s jádrem to nemá nic společného.
15.9.2006 22:52 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Binarka je rovnaka (386) a na athlone@750 bezi 2x rychlejsie ako na durone@1600?
15.9.2006 22:54 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
Rozbalit Rozbalit vše Re: rychlost kodu
Tak zkus tu linuxovou (pomalou) binárku spustit v tom FreeBSD.
Copak toho není dost?
15.9.2006 23:16 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: rychlost kodu
Tím spíš by bylo užitečné vědět, co všechno vám tam běží kromě ní.
15.9.2006 23:36 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
load average: 0.00, 0.02, 0.00 takze vela tam toho nie je, je to gw do netu pre par ludi.
Spustil som 386kovu linuxovu binarku vo freebsd/amd64 a dostal som vysledok 41s cize podobny ako 32 bitovy kod vo win. Zial 64bitovu binarku z linuxu nedokazem spustit.
AraxoN avatar 16.9.2006 00:32 AraxoN | skóre: 45 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: rychlost kodu

Ten program len tak beží, alebo aj niečo vypisuje?

Ak vypisuje, a je spúšťaný v grafike, tak je to jasné - antialiasing, rendering fontu, plus nejaký neoptimalizovaný ovládač grafiky, ktorý nestíha texty tak rýchlo scrollovať.

A na tom Duronovom routri to asi ide cez ssh, takže sa na ňom nič nevykresľuje... Hádam dobre?

A fine is a tax for doing wrong. A tax is a fine for doing well.
16.9.2006 00:43 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Hadas dobre, na routri cez ssh v screene, lokalne je rozdiel medzi konzolou a X asi 1 sekunda cize zanedbatelny.
AraxoN avatar 16.9.2006 08:58 AraxoN | skóre: 45 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: rychlost kodu
Windows má ovládače na 2D grafiku vcelku vychytané. Skús to s presmerovaním výstupu do súboru - rozdiel v rýchlosti filesystémov bude asi menší. Alebo v textovej konzole - a tým myslím naozaj textovej konzole, 80 znakov, 25 riadkov, nie framebuffer.
A fine is a tax for doing wrong. A tax is a fine for doing well.
16.9.2006 23:37 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Spustal som aj na textovej konzole, bez zmeny. Uz ma nic nenapada.
17.9.2006 00:06 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Dalsi novy poznatok, rozdiel v rychlosti zavisi od vstupnych parametrov programu. Znamena to, ze program nie je vo vseobecnosti pomalsi na linuxe, ale len v niektorych pripadoch. Tak toto je uz na mna vela :-).
17.9.2006 00:22 machr | skóre: 2 | blog: machr
Rozbalit Rozbalit vše Re: rychlost kodu
v tom kodu, cos tady psal je dvakrat tento radek:
if(znacka2[pole[tmp+i]]) continue;
ale nikde tam neni inicializace znacka2. To muze byt jeden z duvodu. Kdybys sem hodil celej ten program, tak uz by ti urcite nekdo rek, co tam mas spatne... :-)
(__) (oo) /-------\/ / | || * ||----|| ~~ ~~
17.9.2006 00:40 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Je prilis dlhy aby som ho sem daval cely, ale ak chces testnut mozem ti ho poslat na mail.
17.9.2006 07:24 machr | skóre: 2 | blog: machr
Rozbalit Rozbalit vše Re: rychlost kodu
x303 AT email DOT cz
(__) (oo) /-------\/ / | || * ||----|| ~~ ~~
17.9.2006 12:48 secido | skóre: 27
Rozbalit Rozbalit vše Re: rychlost kodu
Poslal som.
18.9.2006 19:31 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: rychlost kodu
pastebin.com, rafb.net/paste, pastey.net jsou na toto mnohem lepší než mail ;-)

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.