• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy im niżejpoziomowy język, tym program działa szybciej?

VPS Starter Arubacloud
0 głosów
252 wizyt
pytanie zadane 17 marca 2018 w Offtop przez Hiskiel Pasjonat (22,830 p.)
Wiem, dziwnie sformułowany tytuł. Ale chodzi mi o to.. Co jest w tytule.

I tak wgl, co mam rozumieć, przez słowa "poziomowy"? Jeśli chodzi o "poziom" języka, to chodzi o to, jak blisko ma do sprzętu? Tzn. Assembly ma chyba najbliżej, operuje się od razu na rejestrach itd.

C ma trochę dalej

C++ chyba tak samo jak C

Java i C# mają chyba najdalej

(Nie wspominam o innych językach, po nie wiem jak jest w nich)
komentarz 17 marca 2018 przez xenonso Mądrala (5,160 p.)
Języki wysoko poziomowe są z reguły wolniejsze, ale stosują różne triki, które pozwalają na delikatne przyśpieszenie. JVM przykładowo ma taki mechanizm, który wykrywa czy dana część kodu jest często wykonywana, jeśli jest to wtedy taka część nie jest przetwarzana tradycyjnie, tylko od razu leci w postaci kodu maszynowego. Dodatkowo im dłużej działa aplikacja tym bardziej jest zoptymalizowana.

2 odpowiedzi

+3 głosów
odpowiedź 17 marca 2018 przez Tomek Sochacki Ekspert (227,510 p.)
Nom mniej więcej chodzi właśnie o to, jak wiele jest warstw "abstrakcji" przed dojściem do samych poleceń sprzętowych. Ale nie można tego rozpatrywać w kategorii szybkości, a przynajmniej nie zawsze.

Teoretycznie można tak powiedzieć, ale w praktyce trzeba się zawsze zastanowić co oznacza dla Ciebie akceptowalna szybkość działania aplikacji. Do tego trzeba uwzględnić zawsze również nakład pracy i tym samym koszty jakie musisz ponieść (koszty czasu pracy) i skonfrontować to z budżetem klienta i jego wymaganiami.

Powiem Ci z mojego podwórka, czyli webdevu. Jakiś czas temu jedną małą apkę, która początkowo miała być przez przeglądarkę, nagle klient stwierdził, że to musi być apka desktopowa i że było nieporozumienie w rozmowach. Teoretycznie nasuwa się na myśl pewnie C++ albo Java. Wszystko fajnie, ale ja miałem już sporo napisane w JS (node+React), a z C++ bawiłem się lata świetlne temu. Z pomocą jednak przyszedł Electron, co pozwoliło mi napisać pseudodesktopową apkę w JS. Działa to na pewno o wiele mniej wydajnie niż gdybym napisał to w C++ ale dla klienta wystarczyło (dostał swój upragniony plik exe i instalator :), a ja praktycznie nie musiałem nic się więcej douczać poza przeczytaniem jednej dokumentacji Electrona i trochę SO.

Teoretycznie można powiedzieć, że mógłbym to pisać w C++ albo w assemblerze i byłoby mega wydajne... tylko po co :)?

Ale z kolei np. w grach pewnie czasami schodzi się do niskiego poziomu. Nie wiem jak jest obecnie, ale jakiś czas temu pamiętam, że został na GH opublikowany kod Quake 2 albo 3 i czytałem, że w wielu newralgicznych miejscach schodzili do poziomu assemblera, więc pewnie chodziło właśnie o wydajność.
+2 głosów
odpowiedź 17 marca 2018 przez Kacper Sas Dyskutant (8,460 p.)

Język niskiego poziomujęzyk programowania umożliwiający zapis rozkazów maszynowych za pomocą stosunkowo prostych oznaczeń symbolicznych, np. każdy język asemblerowy jest językiem niskiego poziomu.

Język wysokiego poziomu (autokod) – typ języka programowania, którego składnia i słowa kluczowe mają maksymalnie ułatwić rozumienie kodu programu dla człowieka, tym samym zwiększając poziom abstrakcji i dystansując się od sprzętowych niuansów.

~ Wikipedia

 

Wystarczyło zapytać wikipedii.

C ma bliżej do języka niskiego poziomu niż C++, także widać po szybkości wykonywania - aż o 10%.

Bliżej, dalej to tylko pojęcia względne. Finalnie, albo jest niskiego poziomu, albo wysokiego.

Co do pytania w tytule - program napisany w języku niskiego poziomu będzie szybszy od programu napisanego w języku wysokiego poziomu, lecz i tak zależy czy wyciśniesz z niego ile się da :)

 

//aj, kolega był szybszy u góry haha

Podobne pytania

+1 głos
2 odpowiedzi 1,010 wizyt
pytanie zadane 14 marca 2018 w Offtop przez Hiskiel Pasjonat (22,830 p.)
0 głosów
1 odpowiedź 191 wizyt
pytanie zadane 3 lutego 2018 w Assembler przez KubenQPL Maniak (62,820 p.)
0 głosów
1 odpowiedź 245 wizyt
pytanie zadane 17 lutego 2016 w C i C++ przez niezalogowany

92,832 zapytań

141,776 odpowiedzi

320,822 komentarzy

62,160 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...