Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - ByCzech

Stran: 1 ... 105 106 [107] 108 109 ... 123
1591
Vývoj / Re:Má Python budoucnost?
« kdy: 16. 06. 2016, 00:22:44 »
Já vidím v původním příspěvku, že je řeč o Spring (na Javě) vs Flash (na Pythonu). Ty tam vidíš něco jiného?
Kromě toho tam vidím neplatné zobecnění "co platí pro Spring, platí pro Javu". Proto jsem ho korigoval.

Aha, já to tam nevidím :-)

1592
Vývoj / Re:Má Python budoucnost?
« kdy: 15. 06. 2016, 23:54:37 »
Jen aby se vám z toho ale nezamotala hlava. :) Ten tolikrát vychvalovaný Spring v o několik řádů rychlejší Javě je v něm totiž například pomalejší než flask s Pythonem. A to se bavíme o reálných problémech webového backendu
Já tam teda vidím Javu na druhém a 5.-8. místě, přičemž se jí tam vetřel jenom Ur (asi málo kdo používá) a C++. První výskyt Pythonu vidím až někde na místě, do kterého se mi nechce počítat. Cca čtyřicátém?

Ty tam vidíš něco jinýho?

Já vidím v původním příspěvku, že je řeč o Spring (na Javě) vs Flash (na Pythonu). Ty tam vidíš něco jiného?

1593
Vývoj / Re:Má Python budoucnost?
« kdy: 15. 06. 2016, 13:13:40 »
Hele ty nerudný človíčku, buď té lásky a běž si vkládat slova do úst někomu jinému. Tenhle způsob diskuze mě nebere. Díky.
Jen se snažím dobrat smyslu toho tvého "benchmarku", ale asi se mi to nepodaří...

Potřetí a naposled: Smysl mého PŘÍSPĚVKU je o tom, že se snažím upozornit, že benchmarky mají často špatnou vypovídací hodnotu, že se s výsledky dá velmi snadno ohýbat, že je to často porovnávání hrušek s jablky, že teoreticky je teorie a praxe to samé, ale prakticky to tak není atd. atp.

Napadá vás všechno možné, jen ne to, o čem můj příspěvek je.

1594
Vývoj / Re:Má Python budoucnost?
« kdy: 15. 06. 2016, 12:18:54 »
Tak tyhle závěry jste si vyvodil sám. Já vůbec ne. Já upozorňoval na to, jak je to s benchmarky. Nedělal jsem z toho závěry. Můj příspěvek je o tom, jak se dají věci ohýbat v benchmarcích. Nehodnotil jsem ani jednotlivé jazyky ani ohledně nich nedělal závěr. Jen jsem je použil na demonstraci toho, jak je to se syntetickými benchmarky tak, aby to bylo zřetelně vidět. Pokud to stále nechápete, tak už nevím jak vám to mám vysvětlit...
Takže tvrdíš, že benchmarky na benchmarksgame jsou podobně vadné, jako ten tvůj benchmark? Po pravdě nevím, co se snažíš říct. Že se dá bechmark udělat úplně blbě a je naprosto nevypovídající? To všichni víme. Jsou takové i benchmarky na benchmarksgame? Nemyslím si.

Hele ty nerudný človíčku, buď té lásky a běž si vkládat slova do úst někomu jinému. Tenhle způsob diskuze mě nebere. Díky.

1595
Vývoj / Re:Má Python budoucnost?
« kdy: 15. 06. 2016, 11:49:39 »
Neříkejte, že vám přece jen uchází pointa, že to není o language war, ale upozornění na to, jak je to s benchmarky.
Bohužel pointa uchází tobě, tvrdíš, že jsou benchmarky k ničemu a sám vyrobíš benchmark, který je naprosto úplně mimo a vyvozuješ z něho závěry o kosmické rychlosti C oproti jiným jazykům.

Tak tyhle závěry jste si vyvodil sám. Já vůbec ne. Já upozorňoval na to, jak je to s benchmarky. Nedělal jsem z toho závěry. Můj příspěvek je o tom, jak se dají věci ohýbat v benchmarcích. Nehodnotil jsem ani jednotlivé jazyky ani ohledně nich nedělal závěr. Jen jsem je použil na demonstraci toho, jak je to se syntetickými benchmarky tak, aby to bylo zřetelně vidět. Pokud to stále nechápete, tak už nevím jak vám to mám vysvětlit...

1596
Vývoj / Re:Má Python budoucnost?
« kdy: 15. 06. 2016, 11:09:34 »
Ta benchmarks game se snazi implementovat realne algoritmy a kod, ktery tam je, je od profiku v danych jazycich.

Moje pointa je, ze pokud neco naimplementujete naivne v Jave a pustite to na defaultnim JVM, tak to pojede mnohem rychleji (klidne o rady), nez kdyz udelate to stejne naivne v Pythonu a pustite defaultnim interpreterem.

A to si myslim i odrazi dost tech "zpackanych" benchmarku valejicich se na blozich, proste pokud chcete vykon v Pythonu stejny, jako dostanete bez prace v Jave, musite vynalozit specialni usili - napr. prepsat cast aplikace aby pouzivala externi knihovnu, prekladat to necim specialnim atp.

Co jsem cetl, tak pomalost Javy oproti C++ je pouze v pripade malych projektu - kdyz JIT jede dlouho nad velkymi enterprise vecmi, tak pry bezne dosahuje lepsiho vykonu, nez C++, protoze dynamicky provadi mnohem vice pokrocilych optimalizaci podle hotspotu v dobe behu, ne jen pri kompilaci nebo provadeni jedne ulohy (na to je C++ rozhodne lepsi). To je duvod, proc se to pouziva na ty obrovske veci - (relativne) jednoduchy velmi rozsireny jazyk + solidni vykon.

Opět bych mohl reagovat mým příspěvkem. Stále uchází pointa... S části se s tím co píšete souhlasit dá, v zásadě nejsem proti, ale říkáte to způsobem, kterým to tlačíte jednostranně směrem, který se vám hodí a tím to kroutíte a ohýbáte. Celkový obraz je jiný.

Python vs implementace Pythonu (jsou i implementace běžící nad JVM)

Rychlost Javy (JVM) vs GUI apky v Javě

atd. viz. můj příspěvek... Už to bylo řečeno.

PS: Osobně nemám nic proti Javě, Pythonu ani C ;-). Ohledně PHP už by to bylo složitější, a to jsem v tom napsal takovou hromadu věcí, až to hezké není :)

1597
Vývoj / Re:Má Python budoucnost?
« kdy: 15. 06. 2016, 11:01:11 »
Pokud vim, tak postovane benchmarky nepodvadi outsourcovanim provadeni opraci do asm/c/c++ knihoven, jako tvuj kod ;).

PS: Java snad nema specializovane matematicke knihovny? ;D

1. Téma této diskuse se týká Pythonu, ne Javy

2. Pointa příspěvku nebyla ohledně toho co má který jazyk, ale ohledně toho, jak to je s benchmarky

Nasel jsi snad nejaky podobne zavadny kod, jako jsi napsal, v te benchmarksgame? V opacnem pripade tvuj prispevek nema zadnou pointu, protoze asi vsichni vi, ze podvadet se da :).

A vy jste si prošel ty kódy, udělal testy a nic jste v nich nenašel? Jestli jste to neudělal, jakou pointu má váš příspěvek?

Já si se svým příspěvkem práci dal a pointa z něj vyplývá doufám dobře. A podle reakcí ji zdá se ji vidí i jiní...

1598
Vývoj / Re:Má Python budoucnost?
« kdy: 15. 06. 2016, 10:34:15 »
Njn, když ono je to s těmi testy takové ošidné. Když bych měl parafrázovat: Nevěřím žádnému benchmarku, který jsem si sám nezfalšoval...

Kupříkladu:

C

Kód: [Vybrat]
#include <stdio.h>
 
int main ()
{
   long a;
   long sum = 0;

   for( a = 0; a < 200000000; a++ )
   {
      sum += a;
   }

   printf("sum: %ld\n", sum);
   return 0;
}

Tak tenhle benchmark sis zfalšoval opravdu hezky. Viděl jsi assembler, který gcc vygeneruje?
Kód: [Vybrat]
    .cfi_startproc
    subq    $8, %rsp
    .cfi_def_cfa_offset 16
    movabsq $19999999900000000, %rsi
    movl    $.LC0, %edi
    xorl    %eax, %eax
    call    printf
Ten cyklus se vyhodnotí během kompilace a nic se nepočítá. Takový syntetický příklad je ale úplně k ničemu. Zkus si místo konstanty načíst horní mez cyklu ze vstupu a bude to vypadat úplně jinak.

Ano, přesně to jsem napsal, včetně toho, že to je o několika strojových instrukcích, že? A o tom je pointa mého příspěvku. Jak je to často s těmi benchmarky. Že jsou v podstatě nicneříkající nebo udělané tak, jak se komu hodí do krámu, takže ohánět se jimi je úplně k ničemu. Ke každé části v mém příspěvku se dá namítat. Protože je téma diskuze ohledně Pythonu, jsou námitky převážně rozvinuty v příspěvku na něm.

Neříkejte, že vám přece jen uchází pointa, že to není o language war, ale upozornění na to, jak je to s benchmarky.

1599
Vývoj / Re:Má Python budoucnost?
« kdy: 15. 06. 2016, 10:27:31 »
Pokud vim, tak postovane benchmarky nepodvadi outsourcovanim provadeni opraci do asm/c/c++ knihoven, jako tvuj kod ;).

PS: Java snad nema specializovane matematicke knihovny? ;D

1. Téma této diskuse se týká Pythonu, ne Javy

2. Pointa příspěvku nebyla ohledně toho co má který jazyk, ale ohledně toho, jak to je s benchmarky

1600
Vývoj / Re:Má Python budoucnost?
« kdy: 15. 06. 2016, 04:42:34 »
Jako ja nevim, ale normalni Python je malokdy rychlejsi, nez Java, vetsinou i o rady pomalejsi - https://benchmarksgame.alioth.debian.org/u64q/python.html.

Tohle bych nečekal http://benchmarksgame.alioth.debian.org/u64q/php.html

Njn, když ono je to s těmi testy takové ošidné. Když bych měl parafrázovat: Nevěřím žádnému benchmarku, který jsem si sám nezfalšoval...

Kupříkladu:

C

Kód: [Vybrat]
#include <stdio.h>
 
int main ()
{
   long a;
   long sum = 0;

   for( a = 0; a < 200000000; a++ )
   {
      sum += a;
   }

   printf("sum: %ld\n", sum);
   return 0;
}

Kód: [Vybrat]
$ gcc -o bench0 bench.c && time ./bench0
sum: 19999999900000000

real    0m0.529s
user    0m0.524s
sys     0m0.000s

Půl sekundy... Hm rychlovka!

Java

Kód: [Vybrat]
class Bench {
  public static void main (String [] args)
  {
    long i, sum = 0;

    for(i=0; i<200000000; i++) {
      sum+=i;
    }
    System.out.println(sum);
  }
}

Kód: [Vybrat]
$ javac bench.java && time java Bench
19999999900000000

real    0m0.188s
user    0m0.184s
sys     0m0.016s

Tý jo! Java skoro 3x rychlejší než C?! (viz. dále)

PHP

Kód: [Vybrat]
<?php
$sum 
0;

for(
$i=0$i<200000000$i++) {
    
$sum += $i;
}

echo(
$sum."\n");
?>


Kód: [Vybrat]
$ time php -f bench.php 
19999999900000000

real    0m8.860s
user    0m8.836s
sys     0m0.012s

No to se dalo čekat.

Python

Kód: [Vybrat]
sum = 0
for i in range(200000000):
    sum+=i

print(sum)

Kód: [Vybrat]
$ time python bench3.py 
19999999900000000

real    0m25.327s
user    0m21.612s
sys     0m3.616s

No to teda vypadá vážně blbě!

Python 3

Kód: [Vybrat]
$ time python3 bench3.py 
19999999900000000

real    0m21.746s
user    0m21.676s
sys     0m0.012s

Taky propadak! ...???

No jo, jenže...

Python 2

Kód: [Vybrat]
sum = 0
for i in xrange(200000000):
    sum+=i

print(sum)

(range vs xrange)

Kód: [Vybrat]
$ time python bench.py
19999999900000000

real    0m15.998s
user    0m15.972s
sys     0m0.000s

No vida, jedno písmenko a co to udělá, že? ;-)

A co na to JIT, když Java má, chci ho taky!

PyPy

Kód: [Vybrat]
$ time pypy bench3.py
19999999900000000

real    0m1.175s
user    0m1.152s
sys     0m0.016s

To je už hodně zajímavé, jen dvojnásobek času, který na to potřebuje C.

Kód: [Vybrat]
$ time pypy bench.py
19999999900000000

real    0m1.165s
user    0m1.156s
sys     0m0.004s

A tady jakbysmet.

Ale ruku na srdce, ono v Pythonu se to stejně má dělat jinak, že...

Python 3

Kód: [Vybrat]
print(sum(range(200000000)))

Kód: [Vybrat]
$ time python3 bench-sum-range.py
19999999900000000

real    0m3.209s
user    0m3.200s
sys     0m0.000s

To už je 7x rychlejší než původní kód...

Python 2

Kód: [Vybrat]
$ cat bench-sum-xrange.py 
print sum(xrange(200000000))

Kód: [Vybrat]
$ time python bench-sum-xrange.py
19999999900000000

real    0m1.335s
user    0m1.324s
sys     0m0.000s

Tohle je dokonce 19x rychlejší než původní kód a zase se přibližujeme rychlosti Céčka.

A Python má vlastně hromady specializovaných knihoven, že...

Python 3

Kód: [Vybrat]
import numpy

print numpy.sum(numpy.arange(200000000))

Kód: [Vybrat]
$ time python3 bench-numpy.py 
19999999900000000

real    0m1.745s
user    0m0.792s
sys     0m0.876s

Hm, 2x rychlejší než kód bez specializované knihovny.

Python 2

Kód: [Vybrat]
$ time python bench-numpy.py 
19999999900000000

real    0m1.599s
user    0m0.684s
sys     0m0.900s

Mno a tady jsme si kupodivu nepomohli.

A pro pořádek, v Céčku bychom to asi těžko kompilovali s -O0, že?

C

Kód: [Vybrat]
$ gcc -O1 -o bench1 bench.c && time ./bench1
sum: 19999999900000000

real    0m0.085s
user    0m0.080s
sys     0m0.000s

Kde jsi Javo? :)

Kód: [Vybrat]
$ gcc -O2 -o bench2 bench.c && time ./bench2
sum: 19999999900000000

real    0m0.003s
user    0m0.000s
sys     0m0.000s

Java? Cože? Kde? :D


Pointa je myslím jasná...

  • když budu chtít, může Java vypadat lepší než C a PHP bude vypadat velmi zajímavě
  • když budu patlal, tak v Pythonu budu daleko za všemi ostatními.
  • ale pak si pustíme desktopový program v Javě a budeme se divit, co se stalo s tou pověstnou o řády rychlejší Javou
  • když budu chtít, bude se Python blížit Céčku
  • když použiji možnosti konkrétní implementace daného jazyka (specializované knihovny, JIT ap.), bude to vypadat zase úplně jinak
  • s Céčkem stejně všem nakopu zadnice, protože takhle úloha se s optimalizacemi přeloží na pár strojových instrukcí a pak je spouštění takového programu dražší než vlastní běh, ale dělat v tom backend pro webové appky bych fakt nechtěl (naposled si vzpomínám hromadu let zpátky nějaké CGI "skripy", ale to byla úplně jiná doba).

Mimochodem zkuste si ten rozsah pro jednotlivé testy zvětšit desetinásobně. Příklady s range v Python 2 vám na paměť utlučou stroj s 16 GiB RAM (protože to vytváří list o daném počtu položek), kdežto xrange či Python 3 spotřebu paměti elegatně řeší, protože to hodnoty pro výpočet generuje až když jsou třeba.

Osobně si myslím, že tvrzení, že Python je pomalý není moc moudré. Když se budeme bavit o konkrétní implementaci jazyka, to už pravda být může (CPython pro konkrétní zpatlaný algoritmus), ale nemusí (PyPy) či vhodně zvolený algoritmus a možnosti dané implementace (xrange, numpy, sum+xrange).

Docela by mohlo být zajímavé, jak by se to měnilo s výpočty ve floating point (a tady by si obdobné zadání ve FP říkalo o prohnání např. přes OpenCL ap. a pak už je jazyk irelevantní, vše to bude jen lepidlo pro HW akcelerovaný běh).

1601
Vývoj / Re:Algoritmus pro skládání kousků dřeva
« kdy: 09. 06. 2016, 16:39:51 »
Nevím jestli chápu zadání správně, ale podle podmínek je řešení vzít nejmenší kousek a ostatní v libovolném pořadí odečíst, tím vyjde záporná délka :-D.

2-3-5-6 = -12

a vlastně proč neodečíst už i první číslo?

-2-3-5-6 = -14

Problem solved :-D

Nechápeš to správně, tohle znamená, že jsi našel řešení s délkou 14.


Já to samozřejmě pochopil, že záporná délka neexistuje a není ji proto možné aplikovat, snažil jsem se upozornit na nedostatky v zadání a nutnost pamatovat na takovéto věci v algoritmu, protože počítač neřeší dřívka, ale čísla a pro něj je co největší záporné číslo určitě nejmenší a proto správný výsledek, dle zadání, které není jednoznačné ;-). Dělám často analýzy zadání a tohle se děje běžně. To co je pro jednoho jasné, dává jinému hromadu možností ;-).

1602
Vývoj / Re:Algoritmus pro skládání kousků dřeva
« kdy: 09. 06. 2016, 09:48:55 »
Představte si následující problém:
mám kousky dřeva různých délek (např. 3, 5, 2 a 6 cm) spojených na svých koncích (podobně jako skládací metr). Úkolem je najít rovnici, která povede k nejmenší délce složených kousků.
Jedno z možných řešení je sestavit všechny možné rovnice a spočítat složenou délku:
3 + 5 + 2 + 6 -> délka 16
3 + 5 + 2 - 6 -> délka 10
3 + 5 - 2 + 6 -> délka 8
3 + 5 - 2 - 6 -> délka 8
3 - 5 + 2 + 6 -> délka 8
3 - 5 + 2 - 6 -> délka 9
3 - 5 - 2 + 6 -> délka 7
3 - 5 - 2 - 6 -> délka 13
Hledaná rovnice (která nemusí být jen jedna) je tedy 3 - 5 - 2 + 6.
Generování všech rovnic zabere poměrně dost času (například při padesáti kouscích to vyjde na nějakých 2 500 let). Existuje algoritmus (případně s kódem), jak najít požadovanou rovnici ještě během mého života :-)
Díky!

Nevím jestli chápu zadání správně, ale podle podmínek je řešení vzít nejmenší kousek a ostatní v libovolném pořadí odečíst, tím vyjde záporná délka :-D.

2-3-5-6 = -12

a vlastně proč neodečíst už i první číslo?

-2-3-5-6 = -14

Problem solved :-D

1603
Server / Re:Btrfs ztratilo část volného místa
« kdy: 07. 06. 2016, 00:04:56 »
Ale no tak. Nejenomže prodejci o tomhle chování neinformují
Mně tedy název disku „Archive“ připadá jako klíčová informace. Pokud bych ten disk chtěl použít jinak, než k archivaci, budu si pečlivě zjišťovat, čím je ta řada specifická. Že to používá SMR prodejci informují, že SMR zpomaluje zápis se dočtu i na Wikipedii.

Archive neznamená, že nemůžu zapisovat náhodně. To že to používá k archivaci, neznamená, že při náhodném zápisu to zkolabuje. Nepleťte si disk s kazetopáskovou jednotkou, kde je sekvenční zápis součástí technologie. Tohle je risk s náhodným přístupem.

1604
Jakoze windows neumi virualni plochy? No to chce zkusit win10   8)
K libreoffice nepouzitelnej nastroj. Oproti officu. Tedka jsem kamosce delal cislovani na diplomce. Mela to v libreoffice a ani za boha jsem nevedel jak to udelat a to jsem zkousel ruzne moznosti. Chytnul jsem ms word a za minuty jsem to mel. Jako pouzitelnost nekterych programu 0b.

Tak já mám přesně opačnou zkušenost. V LO/OOorg udělám vše co potřebuju a na MS Office jsem jak bez ruky a nejde to a nejde. A od té doby co je ribbon je to ještě horší. :D

1605
Nebo je to všechno stejný, pomalý šmejd, a napsat se to v tom zkrátka nedá?
Eclipse - padá, seká se. Simulink - padá, seká se, odezva gui v sekundách. Xilix PlanAhead - naprosto to samé. Jdownloader - pomalost, zasekávání. Jediným pojítkem je GUI psané v Javě....

Mi se Eclipse ani JDownloader2 nesekají. Zpomalení reakcí GUI je vidět, ale není nic hrozného. Možná záleží co máte za stroj. Nebo to je OS?

Stran: 1 ... 105 106 [107] 108 109 ... 123