Proč jsou programy velké jako kráva

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod asd 28. 10. 2009 00:37

Tak já sem teď nedávno v C dělal jeden úkol, kterej má zobrazit kalendář a výsledná velikost binárky je jen 25kB.
asd
Junior

Odeslat příspěvekod Dany0 28. 10. 2009 01:37

jen 25kB? to je pro assembláky větší než vesmír!
Místo abych psal další *ehm* podpis, raději půjdu ven na čerstvý vzduch.
Kdo chce pozvánku do Google Wave tak SZ! Furt jich mám spoustu :)
Dany0
Trvalý BAN
Uživatelský avatar

Odeslat příspěvekod mr.detlef 28. 10. 2009 02:15

už tu sice padl link na 3D střílečku pod 100 kb s názve kkrieger, ale tady je link i s dalšíma věcma od stejného programátora(či programátorů), opravdu doporučuju: http://www.theprodukkt.com/
Dancall is not DEATH
mr.detlef
Kolemjdoucí

Odeslat příspěvekod A_Cox 28. 10. 2009 02:24

To má zase někdo starosti. Vymýšlí problémy, které neexistují.

Proboha, není to fuk, kolik ta binárka má? Stejně ta binárka bude mít zaváděcí hlavičku, informace pro operační systém, jak jí má spustit, x dalších věcí, které se v paměti vůbec neprojeví.

Právě lidi typu „rozhodl jsem se naučit programovat“ vůbec neví o co go a tak řeší. Já jsem se zase včera naučil operavat slepé střevo, kdo půjde ke mě na operaci? Budete mi věřit? A stejně byste měli věřit lidem typu nevím o co jde, ale kecám o tom.

Proboha, víte vy vůbec, že v binárce je mnohem víc, než Váš program? Můžete do ní třeba nacpat překlad Vašeho programu ve stovce jazyků a samozřejmě, že se to neobjeví. Můžete v binárce mít debug informace. Atd. atd. atd.

Druhá věc je, že k čemu je Vám 1 KB program, když Windows k němu stejně přidají několik desítek DLL knihoven o celkové velikosti mnoha megabajtů a bude to běžet spolu s tím v paměti.

Na druhé straně existuje řada technik operačního systému, a vůbec, nastudujte si to.

Psát krátký asm kód je k ničemu. Když napíšete nejkratší asm kód, zaručeně bude běžet několikanásobně pomaleji, než i ten nejblbější kód přeložený Céčkem. Nejrychlejší kód je zase mnohem delší. Chcete-li rychlý a svižný program, nebude nejkratší, protože tak to nefunguje. Pokud pláčete po rychlých programech, jste v přímém rozporu s požadavkem na co nejmenší kód.

Je to stejné, jako nejkratší cesta do města není vzdušnou čarou, neboť prokopávat se krupáčem panelákem v cestě zabere několik dní. Navíc narazíte na odpor obyvatel paneláku. Obejít panelák znamená ujít o pár kroků navíc, ale zase je to mnohem rychlejší. A stejně tak nejkratší kódy jsou zoufale a líně pomalé. Jsou to tu nejhorší kódy skoro co existují, a proto se s nima assembleristi moc neuplatňují a je to ztracený čas.

Autor příspěvku programuje už 20 let.
A_Cox
Junior

Odeslat příspěvekod Platič 28. 10. 2009 04:03

Coxi,
hňupové, jako ty nám zasírají počítače megalomanskými kládami, které ve smyčce provádí tisíce zbytečných operací, přenáší zbytečně tuny dat a čekají na něco, co nikdy nenastane. A to jenom proto, že rychle napsali "program".

Původní tazatel napsal první jednoduchý program a protože PŘEMÝŠLÍ, tak se ptá. Lidi, co tomu rozumí, mu poradili a on na sobě možná zapracuje a naučí se.

Ale z tebe je už ve 20 konzerva.
Platič
Kolemjdoucí

Odeslat příspěvekod LGA 28. 10. 2009 07:42

mr.detlef píše:už tu sice padl link na 3D střílečku pod 100 kb s názve kkrieger, ale tady je link i s dalšíma věcma od stejného programátora(či programátorů), opravdu doporučuju: http://www.theprodukkt.com/

Dobrá hra :-D grafiku to má snad lepší než legendární Doom. Jen ta 386 by si s tím neporadila.

Přidám další link:
Kód: Vybrat vše
http://www.pouet.net/prodlist.php?platform[]=Windows&type[]=64k&order=views
LGA
Junior

Odeslat příspěvekod odklizec 28. 10. 2009 10:17

Toto je velmi poucna (a zabavna) story:
http://folklore.org/StoryView.py?projec ... Puzzle.txt
odklizec
Junior

Odeslat příspěvekod rudidlo 28. 10. 2009 10:52

Platič píše:Coxi,
hňupové, jako ty nám zasírají počítače megalomanskými kládami, které ve smyčce provádí tisíce zbytečných operací, přenáší zbytečně tuny dat a čekají na něco, co nikdy nenastane. A to jenom proto, že rychle napsali "program".

Původní tazatel napsal první jednoduchý program a protože PŘEMÝŠLÍ, tak se ptá. Lidi, co tomu rozumí, mu poradili a on na sobě možná zapracuje a naučí se.

Ale z tebe je už ve 20 konzerva.

Platiči,

ať se nám to líbí nebo ne, každý vývoj software musí někdo zaplatit (i vývoj software, který je zdarma). Nejdražší položkou při tomto procesu jsou v drtivé většině případů mzdové náklady vývojáře. To znamená čím rychleji bude software hotov, tím nižší náklady bude mít producent software. Tím pádem máme na trhu software, který je méně optimalizovaný, dostatečně kvalitní (dle kritérií zadavatele) a je možné jej prodat zákazníkovi.

Cox není dle mého názoru ani tak konzerva, jako spíše člověk, který má dostatek zkušeností z praxe.

Osobně mi taky vadí, když se dostanu ke kódu, které psalo prase, ale jediné co s ním mohu provést je optimalizovat jej do té míry, aby se to člověku, či instituci která mě platí vyplatilo.
Jsou dva druhy uživatelů počítačů. Ti první o svá data už přišli.
rudidlo
Junior
Uživatelský avatar

Odeslat příspěvekod quaker66 28. 10. 2009 11:43

xmms píše:Tak mě napadlo se jen tak ze srandy naučit programovat. Nainstaloval jsem Dev-C++ a vytvořil velký, složitý sofistikovaný konzolový program na sečtení dvou čísel. A skutečně. Kompilace mě potěšila bez problému a soubor sežral nádherných půl megabajtu. A protože jsem před tím trochu assembleroval, tak jsem si tu nádheru odkrokoval. Je tam pěkná plejáda zajímavých datových přesunů a různých výpočtů. Přitom by jen stačilo naplnit registr číslem a přičíst k němu další číslo. U velkých programů je jasné, že každý složitý výpočet ještě navíc obalený vrstvou dalšího balastu se pěkně projeví na výpočetní náročnosti. Důvod je velice jednoduchý - přinutit uživatele koupit nový drahý počítač. Jinak bychom tu měli parádní pentia II 500 MHz, na kterých to bude svištět jako drak. Můj počítač provádí miliardy výpočtů za sekundu, o čemž bych občas pochyboval.

Nebo je v tom nějaký jiný rozumný důvod?


půl megabajtu? :-o

Kód: Vybrat vše
debian@debian-desktop:~$ cat mytestapp.c
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

int
main(void)
{
   char i1[PATH_MAX], i2[PATH_MAX];
   double o1, o2;

   printf("Zadejte prvni cislo: ");
   fgets(i1, sizeof(i1), stdin);
   o1 = atof(i1);
   if (!o1)
     {
   printf("Neni cislo.\n");
   return 1;
     }
   printf("Zadejte drihe cislo: ");
   fgets(i2, sizeof(i2), stdin);
   o2 = atof(i2);
   if (!o2)
     {
   printf("Neni cislo.\n");
   return 1;
     }
   printf("Soucet cisel %f a %f je %f\n", o1, o2, o1 + o2);
   return 0;
}
debian@debian-desktop:~$ gcc mytestapp.c -o mytestapp
debian@debian-desktop:~$ du --bytes mytestapp.c
507   mytestapp.c
debian@debian-desktop:~$ du --bytes mytestapp
9800   mytestapp
debian@debian-desktop:~$ strip mytestapp
debian@debian-desktop:~$ du --bytes mytestapp
5048   mytestapp
debian@debian-desktop:~$ ./mytestapp
Zadejte prvni cislo: 15.1
Zadejte drihe cislo: 896.156124258456
Soucet cisel 15.100000 a 896.156124 je 911.256124


program zabral 9kB a po stripu 5kB
quaker66
Junior

Odeslat příspěvekod piErcE 28. 10. 2009 12:03

Prosim te, zajed si s linuxem domu. s windowsama ani linuxem to nema nic spolecnyho. jen s neznalosti autora.

na debianu ti klidne taky vytvorim aplikaci o velikosti pul mega, ktera neudela nic, nez ze na obrazovku vyprskne soucet dvou cisel.
Garmin DriveLuxe 50 - iPhone SE - Octavia III 1.4 110 kW DSG
piErcE
Junior

Odeslat příspěvekod quaker66 28. 10. 2009 12:05

piErcE píše:Prosim te, zajed si s linuxem domu. s windowsama ani linuxem to nema nic spolecnyho. jen s neznalosti autora.

na debianu ti klidne taky vytvorim aplikaci o velikosti pul mega, ktera neudela nic, nez ze na obrazovku vyprskne soucet dvou cisel.


co tohle má společnýho s Linuxem nebo Windows? kód, co jsem poslal, bude stejně dobře fungovat na obou platformách. Já jen byl překvapený, jak může taková jednoduchá aplikace zabrat půl megabajtu.

pokud vím, o Linuxu jsem nic neříkal - není v tomto případě úplně jedno, jaký má uživatel systém?
quaker66
Junior

Odeslat příspěvekod bunak 28. 10. 2009 12:13

jo jo když to není v C# (čti sí daš) :tleskani
bunak

Odeslat příspěvekod jarw 28. 10. 2009 12:15

Chtěl bych upozornit autora dotazu i všechny diskutující na jednu podstatnou skutečnost. A to je ekonomika celé té věci. Jestli že dneska koupím 1TB za 2000 tak to znamená , že 0,5MB mě přijde na 0,001 Kč. Takže i když zmenším velikost aplikace na skoro nic a nasadím to v obrovské firmě o 1000 strojích ušetřím tím jednu korunu. Vezmeme-li ješt v úvahu náklady na programátora, který stojí cca 5 kč za minutu a věnoval by se tomu problému i kdyby jen hodinu (přece jen musí to dostan na 1000 pc) tak snadno zjistím, že nemá smysl na tento problém ani myslet, natož ho reálně řešit.

Jarda
jarw
Kolemjdoucí

Odeslat příspěvekod piErcE 28. 10. 2009 12:46

quaker66 píše:pokud vím, o Linuxu jsem nic neříkal - není v tomto případě úplně jedno, jaký má uživatel systém?


Tvuj prispevek vypadal, jako kdyby jsi byl takovy ten typicky zauhrovany linuxak, co ho musi protlacit za kazdou cenu. Pak tedy beru zpet.

Nicmene to nic nemeni na tom, ze to je proste neschopnost/neznalost puvodniho autora prispevku.

a jak to muze nastat? jednoduse - napisu program a prilinkuju k nemus taticky hromadu nesmyslu. pak muzu mit dvaceti megovy program, ktery otevre okno s helloworld.
Garmin DriveLuxe 50 - iPhone SE - Octavia III 1.4 110 kW DSG
piErcE
Junior

Odeslat příspěvekod quaker66 28. 10. 2009 13:32

piErcE píše:
quaker66 píše:pokud vím, o Linuxu jsem nic neříkal - není v tomto případě úplně jedno, jaký má uživatel systém?


Tvuj prispevek vypadal, jako kdyby jsi byl takovy ten typicky zauhrovany linuxak, co ho musi protlacit za kazdou cenu. Pak tedy beru zpet.

Nicmene to nic nemeni na tom, ze to je proste neschopnost/neznalost puvodniho autora prispevku.

a jak to muze nastat? jednoduse - napisu program a prilinkuju k nemus taticky hromadu nesmyslu. pak muzu mit dvaceti megovy program, ktery otevre okno s helloworld.


AFAIK ti, co se snaží Linux protlačit za každou cenu, jdou jenom nejvíc vidět, a stejní se najdou i mezi uživateli Windows(se podívej na Nikyho)

takže nevím o kterým "typickým" tady mluvíš :) většině Linuxáků je úplně fuk, co si ti ostatní používají, protože většinou ten OS používají proto, že jim vyhovuje.
quaker66
Junior

Předchozí stránkaDalší stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků