Wielkość pliku wynikowego (ciekawostka)

Wielkość pliku wynikowego (ciekawostka)
abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:7 miesięcy
  • Postów:6610
0

kod z wątku http://4programmers.net/Forum/Newbie/249098-analiza_kodu_pobierajacego_pliki_z_sieci?p=1123538#id1123538

Przekompilowany na Delphi 7 - 240 640 bajtów
Przekompilowany na Delphi XE5 - 1 072 400 bajtów (32 bit release), wersja debug 7 609 692 bajtów

Wielkość pliku wynikowego jest prawie 4,5 razy większa. A to na dobrą sprawę jakieś 20-30 linijek kodu...


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:Tuchów
  • Postów:12163
0

Zobacz jeszcze jaka będzie różnica, jeśli w obu przypadkach wywali się symbole debugera, a całość potraktuje jakims pakerem, np. upxem z opcją -9; To i tak mało - Lazarus zrobiłby dwa razy większy plik, niż XE7 :]


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:7 miesięcy
  • Postów:6610
0

nie ma to znaczenia znaczenia - rozmiar ten sam. Co do pakowania UPXem to dla mnie to proteza :)


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
0
abrakadaber napisał(a):

kod z wątku http://4programmers.net/Forum/Newbie/249098-analiza_kodu_pobierajacego_pliki_z_sieci?p=1123538#id1123538

Przekompilowany na Delphi 7 - 240 640 bajtów
Przekompilowany na Delphi XE5 - 1 072 400 bajtów (32 bit release), wersja debug 7 609 692 bajtów

Wielkość pliku wynikowego jest prawie 4,5 razy większa. A to na dobrą sprawę jakieś 20-30 linijek kodu...

20 kB nie powinno to zajmować.
Kiedyś robiłem programy, tak wprost na windows, na surowo, no i takie to było...

No, ale teraz dzieci pracują... pity programują na c## net.scripcie... za 300 mln. ;)

0
Mały Krawiec napisał(a):

No, ale teraz dzieci pracują... pity programują na c## net.scripcie... za 300 mln. ;)

nie wiem co to c## net.script, ale akurat w C# by to nawet 20 kB nie zajęło...
w delphi z tego co pamiętam najprostsza aplikacja okienkowa w VCL to minimum 500 kB

olesio
  • Rejestracja:prawie 17 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Szczecin
  • Postów:4191
0

No niestety w tak smutnym kierunku "tuczenia" exeków z gołą formatką albo prostym kodem poszły środowiska do pisania w obiektowym Pascalu. Szkoda, że nie mogli Lazarusa rozwinąć na bazie kodu Delphi 7 z poprawieniem błędów i unowocześnieniem. Ale bez tuczenia exeków pakując tam co się im podoba. Pod WinAPI osobiście piszę jeśli już to tylko w Delphi 7. Wiadomo z VCL bywa tam różnie, ale domyślny projekt to 365 568 bajtów. Wiadomo, dzisiejsze łącza i dyski to pomięszczą. Ale jak ktoś kiedyś jadł krakersky i jego dzieła pisane w masmie i WinAPI zajmowały niespakowane góra 20 kb i to po wstawieniu oraz obsłudze muzyczki w tle, to teraz się łapie za głowe :)


Pozdrawiam.
Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:około 3 godziny
  • Postów:6626
0
fafdas napisał(a):
Mały Krawiec napisał(a):

No, ale teraz dzieci pracują... pity programują na c## net.scripcie... za 300 mln. ;)

nie wiem co to c## net.script, ale akurat w C# by to nawet 20 kB nie zajęło...
w delphi z tego co pamiętam najprostsza aplikacja okienkowa w VCL to minimum 500 kB

Jak poznać subiektywną opinię? Niedomówienia. Np. że C# wymaga posiadania frameworka, którego rozmiar jest duuuużo większy. Aplikacja w VLC jest niezależna od tego co mamy zainstalowane w systemie.


🕹️⌨️🖥️🖱️🎮
0

Wymaga posiadania frameworka który jest preinstalowany z każdym wspieranym obecnie systemem

żeby nie być gołosłownym - program przetłumaczony na C#: http://ideone.com/QyTiau

po skompilowaniu: 8192 bajty

edytowany 1x, ostatnio: flowCRANE
Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:około 3 godziny
  • Postów:6626
0

Ok, zgoda, wiem, że Microsoft sobie na takie rzeczy może pozwolić. Gdyby twórcy Delphi byli na takiej samej pozycji monopolisty, to myślisz, że nie wpakowaliby wymaganych bibliotek w system?


🕹️⌨️🖥️🖱️🎮
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:Tuchów
  • Postów:12163
0
abrakadaber napisał(a)

Co do pakowania UPXem to dla mnie to proteza :)

Eee tam, UPX potrafi zdziałać cudza :]

Mały Krawiec napisał(a)

20 kB nie powinno to zajmować.
Kiedyś robiłem programy, tak wprost na windows, na surowo, no i takie to było...

Aha... Napisz więc taką aplikację w gołym WinAPI i zaprezentuj;

No, ale teraz dzieci pracują... pity programują na c## net.scripcie... za 300 mln. ;)

Sam jesteś jeszcze dzieckiem;

fafdas napisał(a)

w delphi z tego co pamiętam najprostsza aplikacja okienkowa w VCL to minimum 500 kB

Zależy w którym Delphi - wersja 7 generuje plik wykonywalny najprostszego programu okienkowego o wadze 359KiB.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
0
fafdas napisał(a):

Wymaga posiadania frameworka który jest preinstalowany z każdym wspieranym obecnie systemem

żeby nie być gołosłownym - program przetłumaczony na C#: http://ideone.com/QyTiau

po skompilowaniu: 8192b

Przecież to jest zwyczajne źródło... czyli to co pisze programers.

No, ale jak te 8KB potem chodzi... szkoda słów.

furious programming napisał(a):

Aha... Napisz więc taką aplikację w gołym WinAPI i zaprezentuj;

Niby jaką znowuż aplikację - czyżby tę aż 20 liniową?

Czemu nie, chcesz to mogę ci sprzedać takie coś za... 1 marny mln. lol;

Na początek masz piękny obrazek w 1 linii:

Begin WinExec('rakieta.jpg'); end.

flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:Tuchów
  • Postów:12163
0

Niby jaką znowuż aplikację - czyżby tę aż 20 liniową?

Jeżeli nie wiesz o jaką aplikację chodzi, to lepiej skończ postować;

Wypowiadasz się w tym i innym wątku, choć nawet nie wiesz o czym jest dyskusja; Z innej strony - ciekawe ile linijek kodu będziesz musiał klepnąć, skoro aż tak bardzo przeszkadza Ci opasłość VCL i biblioteki standardowej.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 1x, ostatnio: flowCRANE
0

Ależ ja zawsze chętnie się zakładam - o symboliczne 100 mln,
że szybciej klepnę w surowym windows, niż wy wyklikacie to samo w delfinie. :)

Trzaskam:
OpenKey... Queryvalue... i koniec.

Co ty chcesz tu więcej tworzyć... sobie trykasz i finalizujesz - no i co z tego masz? lol)

edytowany 1x, ostatnio: flowCRANE
flowCRANE
Tak myślałem - kiepskim trolem jesteś, EoT.
KA
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 minuty
  • Lokalizacja:Gorlice
1
Mały Krawiec napisał(a):

Ależ ja zawsze chętnie się zakładam - o symboliczne 100 mln,
że szybciej klepnę w surowym windows, niż wy wyklikacie to samo w delfinie. :)

Trzaskam:
OpenKey... Queryvalue... i koniec.

Co ty chcesz tu więcej tworzyć... sobie trykasz i finalizujesz - no i co z tego masz? lol)

A ja się zakładam o 100 mln (tych starych od Wałęsy) że w Windows w ogóle nie klepniesz bo to system operacyjny... Zakładając że chodziło o WinApi to jestem pewien że klepnę to 10x szybciej niż Ty sprawdzisz w dokumentacji parametry wywołań wszystkich tych funkcji RegOpenKeyEx, RegQueryValueEx, RegCloseKeyExwięc nie podniecaj się... a try finally masz to że to jest programowanie OBIEKTOWE wiec jak tworzysz obiekt to musisz (a właściwie tylko powinieneś) go zwolnić wspomniany blok zapewnia to że zwolnisz nawet jeżeli wystąpi błąd. O zaletach programowania obiektowego to pewnie nigdy nie słyszałeś a może jesteś z tych upartych co słyszeli o kole ale i tak i wolą nosić niż wozić, bo przecież wózek miejsce zajmuje.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
0
kAzek napisał(a):

A ja się zakładam o 100 mln (tych starych od Wałęsy) że w Windows w ogóle nie klepniesz bo to system operacyjny... Zakładając że chodziło o WinApi to jestem pewien że klepnę to 10x szybciej niż Ty sprawdzisz w dokumentacji parametry wywołań wszystkich tych funkcji RegOpenKeyEx, RegQueryValueEx, RegCloseKeyExwięc nie podniecaj się... a try finally masz to że to jest programowanie OBIEKTOWE wiec jak tworzysz obiekt to musisz (a właściwie tylko powinieneś) go zwolnić wspomniany blok zapewnia to że zwolnisz nawet jeżeli wystąpi błąd. O zaletach programowania obiektowego to pewnie nigdy nie słyszałeś a może jesteś z tych upartych co słyszeli o kole ale i tak i wolą nosić niż wozić, bo przecież wózek miejsce zajmuje.

Nie martw się o to,
miałem czasu sporo na czytanie... bo tak od 1990r licząc z grubsza, czyli w zasadzie od zarania windowsa.

Tak że z 5000 parametrów funkcji mam w neuronach,
no a resztę sobie łatwo przypomnę, albo nawet wydedukuję - z sufitu, bo tam jest konkretna logika,
tego nie robili jacyś tam wizualni delfiniarze... na szczęście.

A odnośnie obiektowego programowania, powiem krótko: [CIACH!] wiesz na ten temat... zresztą to żaden temat - każdy program jest finalnie falt.

KA
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 minuty
  • Lokalizacja:Gorlice
0

Trolu szkoda na ciebie czasu jak ci nie pasuje RTL i VCL z Delphi to dla mnie możesz sobie tworzyć nawet od razu w HexEdytorze (nie będzie ci nawet potrzebny kompilator). Niektórzy nigdy niczego się nie nauczą i nie zrozumieją że jak dla kilku kilobajtów coś się robi godzinę a nie minutę to jest to wysoce nieopłacalne. Nie wmawiaj mi że bezpośrednio w WinApi pisze się wygodniej i szybciej, bo to oznaczałoby że wszystko co powstało później to po to aby utrudnić ludziom życie. Co do WinApi mogę się założyć że sam znam nie gorzej od ciebie a jednak używam sporadycznie. Po postu niektóre rzeczy warto znać ale trzeba wiedzieć kiedy opłaca się ich użyć. Dla mnie EOT bo jak wspomniałem szkoda czasu którego ty masz chyba nadmiar skoro możesz sobie pozwolić na klepanie nawet dużych aplikacji w WinApi.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
edytowany 1x, ostatnio: kAzek
KR
nie karm trola
flowCRANE
Szkoda na niego czasu - teoretycznie mocny w gębie, ale nic poza tym; Naprawdę szkoda czasu;
crowa
  • Rejestracja:ponad 18 lat
  • Ostatnio:około 8 lat
  • Lokalizacja:Poznań
  • Postów:295
0

Wracajac do upx jest to tez fajny patent chociazby ze wzgledu na prace exe na terminalach blad C0000006 (exe + dll lub exe + bpl).


Tomasz Andrzejewski
Delphi (XE3-XE7) framework engineer @ InterLan
MCP: Microsoft SQL Server 2008, Implementation and Maintenance
flowCRANE
Możesz napisać o tym coś więcej?
crowa
  • Rejestracja:ponad 18 lat
  • Ostatnio:około 8 lat
  • Lokalizacja:Poznań
  • Postów:295
0

Na srodowiskach terminalowych gdzie exe + dll lub exe+ bpl jest odpalany z zasobow sieciowych windows nie laduje calosci do pamieci.
Czesto wystepuja bledy external access. Spakowanie upx wymusza na windows zaladowanie calosci do pamieci w celu rozkompresowania.


Tomasz Andrzejewski
Delphi (XE3-XE7) framework engineer @ InterLan
MCP: Microsoft SQL Server 2008, Implementation and Maintenance
flowCRANE
Aha, to taki myk - dzięki;
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
3

Jak ktoś chce mieć exeki wielkości kilku kilo (~10kb) to może użyć KOL: http://kolmck.net/

Zawsze to lepsze od pisania w WinAPI...

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)