-
Data: 2017-08-26 17:44:52
Temat: Re: Co jest nie tak z C++ (było: Rust)
Od: fir <p...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu sobota, 26 sierpnia 2017 16:04:34 UTC+2 użytkownik AK napisał:
> Użytkownik "fir" <p...@g...com> napisał:
>
> > pewnie pomysle o optymalizacji jak ktos zacznie z sensem asemblowac tym
asemblerem
>
> Nikt nie zacznie, bo zwykly popularny kompilator C zrobi to o wiele wydajniej niz
twoj assembler.
>
> > na razie jakos tego zapotrzebowania wogole nie widze ;c
>
> .. co mnie w ogole nie dziwi.. czy ty widzisz cokolwiek dalej niz czubek wlasnego
nosa :) ?
>
> > gorzej ze nie che mi sie wklepywac tych wszystkich menmonikow, glownie chodzi o
te wersje
> > na charow i shortow, AX AH AL BX BL BH etc,
> > zreszta chyba nawet zwykle skoki albo nawet mov eax maja wersje skrocone (tj
takie ktorych
> > operand nie jes 32 bitowy tylko jakies krotsze wersje 16 bit 8 bit)..
>
> no to d..pa ! :)
>
> np. ...na stosowaniu tych wersji skrocoonych polegala kiedys optymalizacja kodu
assemblerowego.
>
> np powszechnie stosowalo sie (i kompiltaory C tez to wtedy juz umialy):
>
> push cs
> call near ptr addr_fun
>
> zamiast mniej wydajnego ;
>
> call far ptr addr_fun
>
> Takich "sztuczek" bylo wiele.
> Ja np. stosowalem dosc czesto:
>
> mov bx, sp
>
> i indeksowalen stos bx-em
>
> zamiast standarowej wtedy "rozbiegowki" funkcji:
>
> push bp
> mov bp, sp
> ...
> pop bp
>
> ale nie miejsce i pora. Raczej ciekawostka historyczna. z czasow x86
>
> PS: Dobrym assemblerowcem bedziesz, gdy bedziesz mial w kapuscie
> wryte zarowno mnemoniki jak i czasy wykonania rozkazow (no ok, dzis
> juz nie tak - cale szczescie - wazne:). Juz nic nie pamietam prawie
> ale CF (far ret) i C3 (near ret) wrylo sie w stary leb.
> Robilo wrazenie gdy (slawek zapewne pamieta/potwierdzi) pisalo sie
> w niejakim programie "debug" programy "z palca" szesnastkowo :)
> PS1: Kiedys rozpoznawalo sie prawiczka w ASM86 gdy pisal mov ax, 0
> miast xor ax,ax. Dzis (i znow cale szczecie:) przestalo i to miec znaczenie.
>
dzisiaj te instrukcja na AX AH i AL nie sa specjalnie krytycznie potrzebne,
pytanie czy wspolczesne kompilatory je nawet wogole generują (i pytanie jest raczej
ZTCW czy generuja je w ilosci mikro czy wogole)
moglby moze miec sens gdyby pomagaly w optymalizacji ale chyba tego nie robia (wogole
dzisaj gdy
cpu wogole nie jest krytyczne tylko memory bandwidth (MB) to co by sie
liczylo to pewnie prostota - i moze ewentualnie 'compactness' w sensie
pewnie lepsza specjalizowana instrukcja do iloczyny skalarnego dwu float4 niz jej
brak) (a to i tak wszystko w tyle za MB)
ew tylko przydalyby sie pewnie
mov byte ptr [eax], value
(bo inaczej pisanie poszczegolnych bajtow byloby utrudnione)
ew
mov eax, byte ptr [ecx]
do czytania pojedynczych bajtow
(ta granulacja bajtowa wogole przydaje sie chyba tylko do ascii
i kompletnie niczego wiecej -
to jak wspominalem chyba by znaczylo ze nalezaloby zrezygnowac z ascii na rzecz
sensownego unicode
i przerzucic sie na 32bitowe bajty]
(wynika tez chyba z tego ze zasadniczo by byc przyjaznym nowoczesnemu hardware
wypadaloby nielubic chara (przynajmniej w jego typowych zastosowaniach - [ew lubic
go tylko w unikalnych sytuacjach gdy pozwala zmniejszyc memory bandwidth (bo
teoretycznie moglby) ale nie wiem czy te sztuczki by dzialaly) ]
w sumie nie wiadomo co jest bardziej pozyteczne - korzysc wynikajaca z malego
rozmiaru pamieci na teksty wynikajaca z ciagle masowego uzywania charow
czy niekorzys wynikajaca z calego babrania sie z unalignmentami w procku (ciezko mi
powiedziec bo
faktem jest ze procek jest bardziej skomplikowany ale ewna korzysc ze
spakowania tekstow tez jest ;c )
Następne wpisy z tego wątku
- 26.08.17 19:30 AK
- 26.08.17 19:32 Adam M
- 26.08.17 22:29 M.M.
- 27.08.17 08:07 AK
- 27.08.17 10:18 slawek
- 27.08.17 10:53 fir
- 27.08.17 12:21 AK
- 27.08.17 13:47 fir
- 27.08.17 13:53 M.M.
- 27.08.17 13:56 fir
- 27.08.17 14:56 fir
- 27.08.17 22:20 g...@g...com
- 28.08.17 16:29 Adam M
- 28.08.17 17:29 M.M.
- 28.08.17 17:49 Adam M
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-04 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-04 Czy policjantów należy ROZBROIĆ?
- 2024-12-03 Tymoteusz Sz.
- 2024-12-03 Re: Prezydent ułaskawia: Prezydent USA Biden (D) ułaskawia syna własnego
- 2024-12-03 Re: Tani dodatkowy sim do smartwacha
- 2024-12-03 Wróblewo => Analityk finansowy <=
- 2024-12-03 Praktyczny test GPS...
- 2024-12-02 Tak się sprzedają elektryczne woldzwageny ;-)
- 2024-12-02 Akumulator do Hyundai
- 2024-12-02 Olsztyn => Sales Specialist <=
- 2024-12-02 Poznań => Technical Artist <=
- 2024-12-02 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-02 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2024-12-02 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-12-02 Białystok => Delphi Programmer <=