Pak tedy dál čekejte...Ondra.kl píše:... myslím že tady (téměř) nikdo nečeká až bude gapi hotové, ale kde kdo tady čeká až dostane použitelný systém.Tomas Klapka píše:Zatímco tedy čekáte na to, až bude GAPI hotové,
Graph API
Moderátor: Technický odbor
- Tomas.Klapka
- Návštěvník – nepatří k Pirátům
- Příspěvky: 1985
- Registrován: 30 kvě 2010, 18:50
- Profese: discordian pope
- Dal poděkování: 1715 poděkování
- Dostal poděkování: 3357 poděkování
- Kontaktovat uživatele:
Re: Graph API
You'll be redlacep!
- Petr.Vileta
- Člen KS Plzeňský kraj
- Příspěvky: 34642
- Registrován: 22 črc 2009, 18:12
- Profese: Celkem Spokojený Důchodce
- Bydliště: Plzeň 2
- Dal poděkování: 31594 poděkování
- Dostal poděkování: 25704 poděkování
- Kontaktovat uživatele:
Re: Graph API
Proč bych vyvíjel něco pro systém, o kterém nemám ani tušení, kdy bude uveden do provozu a jak konkrétně bude fungovat? Pokud budu něco vyvíjet jen podle obecných předpokladů, zcela jistě to pak po sobě budu muset předělávat. Abych dal příklad (ty já rád ), tak když budu potřebovat ve své aplikaci jméno uživatele, tak potřebuji vědět, jestli se na to ptám uzivatel.jmeno.get() nebo třeba get(uzivatel.jmeno), nebo get(uzivatel, jmeno). Když to ve své aplikaci použiju 100x a neznám ještě přesnou syntaxi, budu to muset pak 100x opravit. Když svou aplikaci udělám tak modulární, že bude stačit to opravit jen na jediném místě, způsobím si jiný problém a to přílišnou modularitu (=pomalost, HW náročnost). Přirovnám to k puzzle. Cílem je získat konečný obraz a je jistě uživatelsky rychlejší skládat ho z 50 kousků, než z 5 tisíc.Tomas Klapka píše:Pak tedy dál čekejte...Ondra.kl píše:... myslím že tady (téměř) nikdo nečeká až bude gapi hotové, ale kde kdo tady čeká až dostane použitelný systém.Tomas Klapka píše:Zatímco tedy čekáte na to, až bude GAPI hotové,
Řadový člen, stínový ministr švihlých nápadů a fórista
Fide, sed cui fidas, vide.
Věř, ale komu věříš měř.
(Perchta z Pernštejna - Bílá paní)
- Lukas.Novy
- Příznivec Pirátů – Jihomoravský kraj
- Příspěvky: 21719
- Registrován: 02 črc 2009, 22:45
- Profese: auditor počítačové bezpečnosti
- Bydliště: Brno
- Dal poděkování: 5232 poděkování
- Dostal poděkování: 12564 poděkování
- Kontaktovat uživatele:
Re: Graph API
Kecas nesmysly, pouziti Adapter patternu je zanedbatelne levne, prakticky zadarmo... I kdyz bys nemel optimalizace kompilatoru (napr. inlining), tak to bude v 99.9 % pripadu drazsi jen o jedno volani funkce.Petr Vileta píše:Když svou aplikaci udělám tak modulární, že bude stačit to opravit jen na jediném místě, způsobím si jiný problém a to přílišnou modularitu (=pomalost, HW náročnost).
Demokracie je diskuse.
| ‒ | – | — | ― | … | „ | “ | ‚ | ‘ | » | « | ½ | ¼ | ¾ | × | ‰ | ® | © | ™ | Tel: 777-5-KRTEK
- Petr.Vileta
- Člen KS Plzeňský kraj
- Příspěvky: 34642
- Registrován: 22 črc 2009, 18:12
- Profese: Celkem Spokojený Důchodce
- Bydliště: Plzeň 2
- Dal poděkování: 31594 poděkování
- Dostal poděkování: 25704 poděkování
- Kontaktovat uživatele:
Re: Graph API
No tak jsem nevěděl, že se tomu říká adapter pattern, ale princip samozřejmě dávno znám a přesně o tom mluvím.Lukas Novy píše:Kecas nesmysly, pouziti Adapter patternu je zanedbatelne levne, prakticky zadarmo... I kdyz bys nemel optimalizace kompilatoru (napr. inlining), tak to bude v 99.9 % pripadu drazsi jen o jedno volani funkce.Petr Vileta píše:Když svou aplikaci udělám tak modulární, že bude stačit to opravit jen na jediném místě, způsobím si jiný problém a to přílišnou modularitu (=pomalost, HW náročnost).
Příklad:
v php vím, že se píše
Kód: Vybrat vše
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
Řadový člen, stínový ministr švihlých nápadů a fórista
Fide, sed cui fidas, vide.
Věř, ale komu věříš měř.
(Perchta z Pernštejna - Bílá paní)
- Lukas.Novy
- Příznivec Pirátů – Jihomoravský kraj
- Příspěvky: 21719
- Registrován: 02 črc 2009, 22:45
- Profese: auditor počítačové bezpečnosti
- Bydliště: Brno
- Dal poděkování: 5232 poděkování
- Dostal poděkování: 12564 poděkování
- Kontaktovat uživatele:
Re: Graph API
Ti rikam, ze je to blbost proste.Petr Vileta píše:Ovšem, když spustím řekněme 100 tisíckrát volání bez adapteru a volání přes adapter, tak na stejném HW ve výsledku může být podstatný časový rozdíl, třeba několik sekund.
adapter.c
Kód: Vybrat vše
#include <stdio.h>
#include <math.h>
double adapter(double y, double x) {
return pow(x,y);
}
double nejaka_moje_funkce(double y, double x) {
return adapter(y,x);
}
main () {
double sum = 0;
int i;
for (i = 0; i < 10000000; i++) {
sum += nejaka_moje_funkce(i / 1000000, i / 10000);
}
printf("%lf\n", sum);
}
Kód: Vybrat vše
#include <stdio.h>
#include <math.h>
double nejaka_moje_funkce(double y, double x) {
return pow(x,y);
}
main () {
double sum = 0;
int i;
for (i = 0; i < 10000000; i++) {
sum += nejaka_moje_funkce(i / 1000000, i / 10000);
}
printf("%lf\n", sum);
}
Kód: Vybrat vše
all: adapter adapter-o3 direct direct-o3
.PHONY: test clean
adapter: adapter.c
gcc -lm adapter.c -o adapter -Wa,-adhln=adapter.s -masm=intel -march=native
adapter-o3: adapter.c
gcc -O3 -lm adapter.c -o adapter-o3 -Wa,-adhln=adapter-o3.s -masm=intel -march=nat
ive
direct: direct.c
gcc -lm direct.c -o direct -Wa,-adhln=direct.s -masm=intel -march=native
direct-o3: direct.c
gcc -O3 -lm direct.c -o direct-o3 -Wa,-adhln=direct-o3.s -masm=intel -march=native
test: all
time sh -c 'for i in `seq 1 10`; do ./adapter > /dev/null; done' || true
time sh -c 'for i in `seq 1 10`; do ./direct > /dev/null; done' || true
time sh -c 'for i in `seq 1 10`; do ./adapter-o3 > /dev/null; done' || true
time sh -c 'for i in `seq 1 10`; do ./direct-o3 > /dev/null; done' || true
clean:
rm adapter direct *-o3 *.s
Kód: Vybrat vše
$ make test
time sh -c 'for i in `seq 1 10`; do ./adapter > /dev/null; done' || true
real 0m9.453s
user 0m9.104s
sys 0m0.041s
time sh -c 'for i in `seq 1 10`; do ./direct > /dev/null; done' || true
real 0m8.573s
user 0m8.453s
sys 0m0.028s
time sh -c 'for i in `seq 1 10`; do ./adapter-o3 > /dev/null; done' || true
real 0m8.054s
user 0m7.880s
sys 0m0.032s
time sh -c 'for i in `seq 1 10`; do ./direct-o3 > /dev/null; done' || true
real 0m8.031s
user 0m7.893s
sys 0m0.042s
- Tito uživatelé poděkovali autorovi Lukas.Novy za příspěvky (celkem 2):
- Ondrej.Profant, Marek.Necada
Demokracie je diskuse.
| ‒ | – | — | ― | … | „ | “ | ‚ | ‘ | » | « | ½ | ¼ | ¾ | × | ‰ | ® | © | ™ | Tel: 777-5-KRTEK
- Vaclav.Klecanda
- Krajské předsednictvo
- Příspěvky: 642
- Registrován: 17 říj 2012, 15:11
- Profese: programator
- Bydliště: Tabor
- Dal poděkování: 250 poděkování
- Dostal poděkování: 805 poděkování
- Kontaktovat uživatele:
Re: Graph API
Nebylo by proste lepsi si sednout a rict, co bude vysledek, aby se dal udelat mock a delat nejaka aplikace?
- Lukas.Novy
- Příznivec Pirátů – Jihomoravský kraj
- Příspěvky: 21719
- Registrován: 02 črc 2009, 22:45
- Profese: auditor počítačové bezpečnosti
- Bydliště: Brno
- Dal poděkování: 5232 poděkování
- Dostal poděkování: 12564 poděkování
- Kontaktovat uživatele:
Re: Graph API
29 dni! Husty.Vaclav Klecanda píše:Hlavne ze cas delat benchmarky se vzdy najde.
Nebylo by proste lepsi si sednout a rict, co bude vysledek, aby se dal udelat mock a delat nejaka aplikace?
Demokracie je diskuse.
| ‒ | – | — | ― | … | „ | “ | ‚ | ‘ | » | « | ½ | ¼ | ¾ | × | ‰ | ® | © | ™ | Tel: 777-5-KRTEK
- Petr.Vileta
- Člen KS Plzeňský kraj
- Příspěvky: 34642
- Registrován: 22 črc 2009, 18:12
- Profese: Celkem Spokojený Důchodce
- Bydliště: Plzeň 2
- Dal poděkování: 31594 poděkování
- Dostal poděkování: 25704 poděkování
- Kontaktovat uživatele:
Re: Graph API
Tak v C jistě, ale adapter (nebo jeho princip) v interpreterech (Php, Perl, Ruby, Python atd.) má mnohem větší režii a já dával příklad na 8-biťáku, který běžel na Z80 s neuvěřitelným taktováním 3,54 MHzLukas Novy píše:Ti rikam, ze je to blbost proste.Petr Vileta píše:Ovšem, když spustím řekněme 100 tisíckrát volání bez adapteru a volání přes adapter, tak na stejném HW ve výsledku může být podstatný časový rozdíl, třeba několik sekund.
Pri benchmarkovani 10*10000000 volani funkce s adapterem a bez adapteru mas pri vypnuti optimalizace rozdil 600 ms, tedy pri tvych 100 tisicich 0.6 ms a nikoliv nekolik sekund. Pri zapnuti standardni optimalizece nani rozdil zadny, protoze se proste vygeneruje stejny binarni kod. muzes si to overit, ten Makefile je vygeneruje. Uvedeny priklad je navic jedna pitoma a levna funkce pow, pri normalnich aplikacich (jako treba volani mysql apod.) by ten rozdil totiz ani nebyl meritelny.
Řadový člen, stínový ministr švihlých nápadů a fórista
Fide, sed cui fidas, vide.
Věř, ale komu věříš měř.
(Perchta z Pernštejna - Bílá paní)
- Lukas.Novy
- Příznivec Pirátů – Jihomoravský kraj
- Příspěvky: 21719
- Registrován: 02 črc 2009, 22:45
- Profese: auditor počítačové bezpečnosti
- Bydliště: Brno
- Dal poděkování: 5232 poděkování
- Dostal poděkování: 12564 poděkování
- Kontaktovat uživatele:
Re: Graph API
Udelas si ten benchmark tentokrat sam nebo mi budes verit, ze proste nema mnohem vetsi rezii? Dneska totiz skutecne interpretovany jazyk proste nepotkas, vsechno se to mninimalne prelozi do bytecodu, nad kterym pak delas upne principalne stejny optimalizce jako s tim prikladem v C. Vetsina jazyku ma navic dneska i JIT a dalsi kouzla, ktera zpusobi, ze je vykonnost skriptovaciho jazyka v 99 % pripadu naprosto srovnatelna s jazykem kompilovanym. Pridani jedne interukce call a jedne instrukce return je stejne drahe bez ohledu na jazyk ci VM a je proste "zadarmo".Petr Vileta píše: Tak v C jistě, ale adapter (nebo jeho princip) v interpreterech (Php, Perl, Ruby, Python atd.) má mnohem větší režii
- Tito uživatelé poděkovali autorovi Lukas.Novy za příspěvek:
- Ondrej.Profant
Demokracie je diskuse.
| ‒ | – | — | ― | … | „ | “ | ‚ | ‘ | » | « | ½ | ¼ | ¾ | × | ‰ | ® | © | ™ | Tel: 777-5-KRTEK
- Lukas.Novy
- Příznivec Pirátů – Jihomoravský kraj
- Příspěvky: 21719
- Registrován: 02 črc 2009, 22:45
- Profese: auditor počítačové bezpečnosti
- Bydliště: Brno
- Dal poděkování: 5232 poděkování
- Dostal poděkování: 12564 poděkování
- Kontaktovat uživatele:
Re: Graph API
Opakuji, pouziti adapter patternu bude prakticky zadarmo i kdyz by ten procesor jel tak pomalu, ze by couval. Pokud si vytvoril neco draheho, tak to nebyl adapter pattern ale spagety.Petr Vileta píše: a já dával příklad na 8-biťáku, který běžel na Z80 s neuvěřitelným taktováním 3,54 MHz
Demokracie je diskuse.
| ‒ | – | — | ― | … | „ | “ | ‚ | ‘ | » | « | ½ | ¼ | ¾ | × | ‰ | ® | © | ™ | Tel: 777-5-KRTEK