eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Re: przemyślenia na temat pamięci i rozmiaru plików
Ilość wypowiedzi w tym wątku: 12

  • 1. Data: 2009-01-01 07:17:35
    Temat: Re: przemyślenia na temat pamięci i rozmiaru plików
    Od: "Remek" <w...@n...pl>

    Użytkownik "Ris" napisał:

    ================
    Oczywiście, że liczyli, liczyli także koszt utrzymania takich
    aplikacji, w kontekście dalszego poprawiania, rozwoju. Po prostu koszt
    utrzymania, rozwoju kodów źródłowych w assemblerze jest za wysoki w
    porównaniu do zysku jakim jest w jakimś tam stopniu mniejsza zajętość
    programu. Gdyby patrzeć tak jak ty, kod w assemblerze i kod, np. w c,
    to tak, bez sensu przesiadać się na c. Jednak kryteria są też inne.
    ================

    Wiesz to z praktyki, czy tylko ze słyszenia? Słyszysz, że dzwonią tylko
    nie wiesz w którym kościele. Pracowałeś we współczesnym 32 bitowym
    assemblerze? Twoje opinie może pasują do minionej epoki DOS'a i Win 3x,
    ale nie do dzisiejszej rzeczywistości. Masm32 to potężne i sprawne
    narzędzie, mogące śmiało konkurować z C. Nie dotyczy to oczywiście
    wyższych i nowszych odmian (C++, C#), bo to inna bajka.

    Remek







  • 2. Data: 2009-01-01 14:43:06
    Temat: Re: przemyślenia na temat pamięci i rozmiaru plików
    Od: "Marcin 'Qrczak' Kowalczyk" <q...@k...org.pl>

    On 1 Sty, 08:17, "Remek" <w...@n...pl> wrote:

    > Pracowałeś we współczesnym 32 bitowym
    > assemblerze?

    Załóżmy, że rozwijasz swój program w 32-bitowym asemblerze. Program ma
    już setki tysięcy linii kodu.

    Tymczasem ja mam 64-bitowy procesor i co prawda system operacyjny może
    uruchamiać również 32-bitowe programy, ale jest się wtedy ograniczonym
    do 2GB pamięci i tylko podstawowe biblioteki systemowe są
    zainstalowane w wersji 32-bitowej. Oprócz zmiany wielkości rejestrów
    architektura x32_64 oferuje kompilatorowi więcej rejestrów i
    adresowanie względem rejestru RIP, co ułatwia tworzenie kodu
    niezależnego od adresu, pod którym się znajdzie. Niemal wszystkie
    zainstalowane u mnie programy i biblioteki są 64-bitowe; są generowane
    z tych samych źródeł, co 32-bitowe. Resztki 32-bitowości są coraz
    mniejszym marginesem zachowywanym tylko dla kompatybilności z
    programami, które nie są dostępne w źródłach, a producent udostępnia
    tylko wersję 32-bitową (acroread, flash, Google Earth).

    To jak, piszesz swój program od nowa?


  • 3. Data: 2009-01-01 21:40:04
    Temat: Re: przemyślenia na temat pamięci i rozmiaru plików
    Od: "Remek" <w...@n...pl>

    Użytkownik "Marcin 'Qrczak' Kowalczyk" napisał:

    ======================================
    Załóżmy, że rozwijasz swój program w 32-bitowym asemblerze. Program ma
    już setki tysięcy linii kodu.

    Tymczasem ja mam 64-bitowy procesor i co prawda system operacyjny może
    uruchamiać również 32-bitowe programy, ale jest się wtedy ograniczonym
    do 2GB pamięci i tylko podstawowe biblioteki systemowe są
    zainstalowane w wersji 32-bitowej. Oprócz zmiany wielkości rejestrów
    architektura x32_64 oferuje kompilatorowi więcej rejestrów i
    adresowanie względem rejestru RIP, co ułatwia tworzenie kodu
    niezależnego od adresu, pod którym się znajdzie. Niemal wszystkie
    zainstalowane u mnie programy i biblioteki są 64-bitowe; są generowane
    z tych samych źródeł, co 32-bitowe. Resztki 32-bitowości są coraz
    mniejszym marginesem zachowywanym tylko dla kompatybilności z
    programami, które nie są dostępne w źródłach, a producent udostępnia
    tylko wersję 32-bitową (acroread, flash, Google Earth).

    To jak, piszesz swój program od nowa?
    ======================================

    Pozdrawiam w Nowym Roku!

    Z Tobą nie śmiał bym polemizować, ponieważ znam Twój dorobek i darzę Cię
    wielkim szacunkiem. Moje trochę prowokacyjne wypowiedzi odnoszą się do
    trolli zaśmiecających wątek. Wypisują bzdury nie mając najmniejszego
    pojęcia o czym piszą.

    A wracając do tematu. Przetransformowanie 32 bit programu na pełne 64 bit
    nie jest proste w żadnym języku. Nie brałem się dotychczas za to i
    niewiele mogę powiedzieć. W assemblerze będzie to pewnie żmudne i
    pracochłonne. W HLach pewnie zrobi to odpowiedni kompilator (jeśli już
    takie są). Problem jest złożony i wart dyskusji. Porównując dawne
    programy 16 bit z późniejszymi 32 bit, możemy wyciągać pewne wnioski. W
    odniesieniu do 64 bit pewnie trzeba radykalnie zmienić podejście. Chociaż
    pewne wnioski co daja większe rejestry można wyciągać na podstawie dawno
    już istniejących mechanizmów - MMX/3dnow wykorzystujących 64 bitowe
    rejestry, czy 80 bit rejestry FPU. Moim zdaniem ułatwiają operacje na
    dużych liczbach i umożliwiają znaczne przyspieszenie takich operacji, co
    ma zastosowanie w grafice wektorowej, czy kodekach/dekodekach
    audio/video. A takie procedury można wyciągnąć do DLL'i i nie trzeba
    przepisywać całego programu. To ciekawy temat.

    Pozdrawiam Remek



  • 4. Data: 2009-01-02 17:42:28
    Temat: Re: przemyślenia na temat pamięci i rozmiaru plików
    Od: czas dOSa <u...@i...sk>

    TYPE "Marcin 'Qrczak' Kowalczyk":
    > On 1 Sty, 08:17, "Remek" <w...@n...pl> wrote:
    >> Pracowałeś we współczesnym 32 bitowym assemblerze?
    > Załóżmy, że rozwijasz swój program w 32-bitowym asemblerze. Program ma
    > już setki tysięcy linii kodu.
    >
    > Tymczasem ja mam 64-bitowy procesor i co prawda system operacyjny może
    > uruchamiać również 32-bitowe programy, ale jest się wtedy ograniczonym
    > do 2GB pamięci i tylko podstawowe biblioteki systemowe są zainstalowane
    > w wersji 32-bitowej. Oprócz zmiany wielkości rejestrów architektura
    > x32_64 oferuje kompilatorowi więcej rejestrów i adresowanie względem
    > rejestru RIP, co ułatwia tworzenie kodu niezależnego od adresu, pod
    > którym się znajdzie. Niemal wszystkie zainstalowane u mnie programy i
    > biblioteki są 64-bitowe; są generowane z tych samych źródeł, co
    > 32-bitowe. Resztki 32-bitowości są coraz mniejszym marginesem
    > zachowywanym tylko dla kompatybilności z programami, które nie są
    > dostępne w źródłach, a producent udostępnia tylko wersję 32-bitową
    > (acroread, flash, Google Earth).
    >
    > To jak, piszesz swój program od nowa?
    To ja skorzystam z obecności;-) i zadam pytanie.
    Jeśli mamy część sprzętową i część niezależną od sprzętu, to ta niezależna operuje na
    symbolach, tak? Ona musi być w rzeczywistości ,klasą abstrakcyjną' czy też szablonem
    "C++" (znaczenie, nie składnia)?
    --
    / qo |) :@=N%_g=v=a=g_eD_e=c()=d=8! =%!gN@8'Re. w8in/ad
    \ _x/ , ;h-%-a'hA'H4,X0'Xo~xo~xO,R`-%EXp01ITed: *-7/+eh
    / | ng `-%__%--'__%--'__%--~__%--^%B`/$qV3r[o; &GooMee
    L ,_o_O http://groups.yahoo.com/group/opRWTng O_o_, /L"EnOF"


  • 5. Data: 2009-01-02 21:36:58
    Temat: Re: przemyślenia na temat pamięci i rozmiaru plików
    Od: "Marcin 'Qrczak' Kowalczyk" <q...@k...org.pl>

    On 2 Sty, 18:42, czas dOSa <u...@i...sk> wrote:

    > To ja skorzystam z obecności;-) i zadam pytanie.
    > Jeśli mamy część sprzętową i część niezależną od sprzętu, to ta niezależna operuje
    na symbolach, tak? Ona musi być w rzeczywistości ,klasą abstrakcyjną' czy też
    szablonem "C++" (znaczenie, nie składnia)?

    Nie rozumiem pytania.


  • 6. Data: 2009-01-03 07:58:20
    Temat: Re: przemyślenia na temat pamięci i rozmiaru plików
    Od: czas dOSa <u...@i...sk>

    TYPE "Marcin 'Qrczak' Kowalczyk":
    >> To ja skorzystam z obecności;-) i zadam pytanie. Jeśli mamy część
    >> sprzętową i część niezależną od sprzętu, to ta niezależna operuje na
    >> symbolach, tak? Ona musi być w rzeczywistości ,klasą abstrakcyjną' czy
    >> też szablonem "C++" (znaczenie, nie składnia)?
    > Nie rozumiem pytania.
    Żeby programista mógł napisać niezależną od sprzętu część oprogramowania (czyli
    typowo- w języku wysokiego poziomu), nie może używać typów (ograniczmy się wstępnie
    do liczbowych) danych związanych ze sprzętem.
    Żeby kompilator mógł wytorzyć działającyc program-- musi je znać, gdyż ich użyje w
    miejsce abstrakcyjnych typów.
    W związku z tym-- pytanie o rzeczywistą realizację: wymyślone typy danych, z ich
    własnymi limitami, które następnie są albo dopasowywane do typów danych maszyny, albo
    symulowane przez kompilator na maszynie lub w środowisku wykonywania, czy może
    analogicznie do prostego "typedef", które tylko zmienia nazwy typów, uniemożliwiając
    programiście oparcie się na właściwościach typu zależnego od maszyny.
    --
    / qo |) :@=N%_g=v=a=g_eD_e=c()=d=8! =%!gN@8'Re. w8in/ad
    \ _x/ , ;h-%-a'hA'H4,X0'Xo~xo~xO,R`-%EXp01ITed: *-7/+eh
    / | ng `-%__%--'__%--'__%--~__%--^%B`/$qV3r[o; &GooMee
    L ,_o_O http://groups.yahoo.com/group/opRWTng O_o_, /L"EnOF"


  • 7. Data: 2009-01-03 09:09:06
    Temat: Re: przemyślenia na temat pamięci i rozmiaru plików
    Od: Michoo <m...@v...pl>

    czas dOSa pisze:
    > Żeby programista mógł napisać niezależną od sprzętu część
    > oprogramowania (czyli typowo- w języku wysokiego poziomu), nie może
    > używać typów (ograniczmy się wstępnie do liczbowych) danych
    > związanych ze sprzętem. Żeby kompilator mógł wytorzyć działającyc
    > program-- musi je znać, gdyż ich użyje w miejsce abstrakcyjnych
    > typów. W związku z tym-- pytanie o rzeczywistą realizację: wymyślone
    > typy danych, z ich własnymi limitami, które następnie są albo
    > dopasowywane do typów danych maszyny, albo symulowane przez
    > kompilator na maszynie lub w środowisku wykonywania, czy może
    > analogicznie do prostego "typedef", które tylko zmienia nazwy typów,
    > uniemożliwiając programiście oparcie się na właściwościach typu
    > zależnego od maszyny.
    stdint.h inttypes.h
    Używasz tego co potrzebujesz - jeżeli potrzebujesz 32bitową zmienną
    całkowitą, bo większego zakresu nie użyjesz, a będzie ich dużo i zależy
    ci na upakowaniu danych to piszesz int32_t, jak potrzebujesz zmienną
    64bitową, piszesz int64_t i nie przejmujesz się, czy ktoś skompiluje kod
    pod i386,amd64, czy avr, bo będzie działał. Jak z to potrzebujesz czegoś
    co będzie *minimum* 16 bit, ale ma być możliwie szybkie na tej
    platformie (np zmienna lokalna, w której coś liczysz) to używasz
    int_fast16_t i na i386 dostajesz int32_t, na amd64 dostaniesz int64_t, a
    na avr int16_t.

    To jest właśnie potęga C/C++ - jeżeli napisałeś program porządnie to
    skompiluje się na wszystkim na co jest kompilator.


    --
    Pozdrawiam
    Michoo


  • 8. Data: 2009-01-03 11:20:42
    Temat: Re: przemyślenia na temat pamięci i rozmiaru plików
    Od: czas dOSa <u...@i...sk>

    TYPE "Michoo":
    >> Żeby programista mógł napisać niezależną od sprzętu część
    >> oprogramowania (czyli typowo- w języku wysokiego poziomu), nie może
    >> używać typów (ograniczmy się wstępnie do liczbowych) danych związanych
    >> ze sprzętem. Żeby kompilator mógł wytorzyć działającyc program-- musi
    >> je znać, gdyż ich użyje w miejsce abstrakcyjnych typów. W związku z
    >> tym-- pytanie o rzeczywistą realizację: wymyślone typy danych, z ich
    >> własnymi limitami, które następnie są albo dopasowywane do typów danych
    >> maszyny, albo symulowane przez kompilator na maszynie lub w środowisku
    >> wykonywania, czy może analogicznie do prostego "typedef", które tylko
    >> zmienia nazwy typów, uniemożliwiając programiście oparcie się na
    >> właściwościach typu zależnego od maszyny.
    > stdint.h inttypes.h
    > Używasz tego co potrzebujesz - jeżeli potrzebujesz 32bitową zmienną
    > całkowitą, bo większego zakresu nie użyjesz, a będzie ich dużo i zależy
    > ci na upakowaniu danych to piszesz int32_t, jak potrzebujesz zmienną
    > 64bitową, piszesz int64_t i nie przejmujesz się, czy ktoś skompiluje kod
    > pod i386,amd64, czy avr, bo będzie działał. Jak z to potrzebujesz czegoś
    > co będzie *minimum* 16 bit, ale ma być możliwie szybkie na tej
    > platformie (np zmienna lokalna, w której coś liczysz) to używasz
    > int_fast16_t i na i386 dostajesz int32_t, na amd64 dostaniesz int64_t, a
    > na avr int16_t.
    >
    > To jest właśnie potęga C/C++ - jeżeli napisałeś program porządnie to
    > skompiluje się na wszystkim na co jest kompilator.
    A algorytm nie musi być optymalny i kompilator nic z nim już nie zrobi oprócz
    usiłowań.
    --
    / qo |) :@=N%_g=v=a=g_eD_e=c()=d=8! =%!gN@8'Re. w8in/ad
    \ _x/ , ;h-%-a'hA'H4,X0'Xo~xo~xO,R`-%EXp01ITed: *-7/+eh
    / | ng `-%__%--'__%--'__%--~__%--^%B`/$qV3r[o; &GooMee
    L ,_o_O http://groups.yahoo.com/group/opRWTng O_o_, /L"EnOF"


  • 9. Data: 2009-01-03 13:44:37
    Temat: Re: przemyślenia na temat pamięci i rozmiaru plików
    Od: "Stachu 'Dozzie' K." <d...@d...im.pwr.wroc.pl.nospam>

    Zawartość nagłówka ["Followup-To:" pl.comp.programming.]
    On 03.01.2009, czas dOSa <u...@i...sk> wrote:
    > TYPE ?Michoo?:
    >>> Żeby programista mógł napisać niezależną od sprzętu część
    >>> oprogramowania (czyli typowo?? w języku wysokiego poziomu), nie może
    >>> używać typów (ograniczmy się wstępnie do liczbowych) danych związanych
    >>> ze sprzętem. Żeby kompilator mógł wytorzyć działającyc program?? musi
    >>> je znać, gdyż ich użyje w miejsce abstrakcyjnych typów. W związku z
    >>> tym?? pytanie o rzeczywistą realizację: wymyślone typy danych, z ich
    >>> własnymi limitami, które następnie są albo dopasowywane do typów danych
    >>> maszyny, albo symulowane przez kompilator na maszynie lub w środowisku
    >>> wykonywania, czy może analogicznie do prostego ?typedef?, które tylko
    >>> zmienia nazwy typów, uniemożliwiając programiście oparcie się na
    >>> właściwościach typu zależnego od maszyny.
    >> stdint.h inttypes.h
    >> Używasz tego co potrzebujesz - jeżeli potrzebujesz 32bitową zmienną
    >> całkowitą, bo większego zakresu nie użyjesz, a będzie ich dużo i zależy
    >> ci na upakowaniu danych to piszesz int32_t, jak potrzebujesz zmienną
    >> 64bitową, piszesz int64_t i nie przejmujesz się, czy ktoś skompiluje kod
    >> pod i386,amd64, czy avr, bo będzie działał. Jak z to potrzebujesz czegoś
    >> co będzie *minimum* 16 bit, ale ma być możliwie szybkie na tej
    >> platformie (np zmienna lokalna, w której coś liczysz) to używasz
    >> int_fast16_t i na i386 dostajesz int32_t, na amd64 dostaniesz int64_t, a
    >> na avr int16_t.
    >>
    >> To jest właśnie potęga C/C++ - jeżeli napisałeś program porządnie to
    >> skompiluje się na wszystkim na co jest kompilator.
    > A algorytm nie musi być optymalny i kompilator nic z nim już nie zrobi oprócz
    usiłowań.

    Ale o czym ty bredzisz? Algorytmu się nie tworzy tak żeby był najszybszy
    co do taktu procesora na wskazanej architekturze, tylko tak, żeby radził
    sobie asymptotycznie najszybciej jak się da.

    Mógłbyś nie wypowiadać się o tematach, o których nie masz zielonego
    pojęcia?

    --
    Secunia non olet.
    Stanislaw Klekot


  • 10. Data: 2009-01-04 08:32:40
    Temat: Re: przemyślenia na temat pamięci i rozmiaru plików
    Od: czas dOSa <u...@i...sk>

    > A algorytm nie musi być optymalny i kompilator nic z nim już nie zrobi
    > oprócz usiłowań.
    Pomoc?:-)
    PS Muszę to zrobić do szkoły albo dla szefa.:-) Nie zróbcie mi tego co poprzednio.:-)
    Bądźcie ludźmi.;-)
    --
    / qo |) :@=N%_g=v=a=g_eD_e=c()=d=8! =%!gN@8'Re. w8in/ad
    \ _x/ , ;h-%-a'hA'H4,X0'Xo~xo~xO,R`-%EXp01ITed: *-7/+eh
    / | ng `-%__%--'__%--'__%--~__%--^%B`/$qV3r[o; &GooMee
    L ,_o_O http://groups.yahoo.com/group/opRWTng O_o_, /L"EnOF"

strony : [ 1 ] . 2


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: