-
Data: 2014-11-22 19:56:55
Temat: Re: Czemu iPhone z 1G ramu jest szybszy od smartfona z Andkiem i 3G?
Od: A.L. <a...@a...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Sat, 22 Nov 2014 17:12:51 +0000 (UTC), Pszemol <P...@P...com>
wrote:
>A.L. <a...@a...com> wrote:
>> On Sat, 22 Nov 2014 07:03:07 -0600, "Pszemol" <P...@P...com>
>> wrote:
>>
>>> "Marcin N" <m...@o...pl> wrote in message
>>> news:54702897$0$2844$65785112@news.neostrada.pl...
>>>> W dniu 2014-11-22 06:41, Pszemol pisze:
>>>>> Ano tu jest to wyjaśnione - przyczyna dla której Android wymaga
>>>>> dużo więcej pamięci do szybkiej pracy jest znowu Java i garbage
>>>>> collection:
>>>>> http://www.quora.com/How-come-the-iPhones-1-GB-RAM-i
s-touted-to-be-able-to-compete-with-more-than-2-GB-R
AM-of-Android-phones/answers/7061202
>>>>>
>>>>>
>>>>> Dopiero Android z 3G ramu na pokładzie będzie pracował tak szybko
>>>>> jak iPhone z 1G ramu - a mniej kostek pamięci to mniej prądu z baterii!
>>>>
>>>> Widać, jak niechlujnie pisane są programy w dzisiejszych czasach.
>>>> Potrzebne są gigabajty, żeby użyć jakichś prostych aplikacji, które
>>>> mogłyby się spokojnie zmieścić w megabajtach.
>>>
>>> Wiesz co Ci powiem - zawsze mi mówiono że Java jest nieefektywna
>>> i że ten cały wychwalany przez nielubiących wskaźników w C/C++
>>> mechanizm automatycznego zarządzania pamięcią jakoś tam działa
>>> ale niezbyt efektywnie - więc nie jest to dla mnie nowością, że coś
>>> co wykorzystuje Javę nie będzie efektywne, będzie rozrzutne jeśli
>>> chodzi o pamięć czy inne zasoby procesora...
>>> Co mnie zszokowało to jak dowiedziałem się JAK BARDZO jest to
>>> nieefektywne i jak bardzo marnotrawne. Spodziewałem się czegoś
>>> na kształt 10-20% a nie że stosunek całej pamięci procesora do tej
>>> używanej części ma być jak 4:1 czy nawet jak piszą 8:1 aby to szybko
>>> działało... To jest dla mnie po prostu tak absurdalne że wręcz śmieszne.
>>
>> To jest fragment dyskusji na temat jezyka Swift:
>>
>> Garbage collection: It's likely that Apple considered that ARC was
>> good enough in most situations, and it makes interoperability with
>> Objective-C (compatibility in terms of memory management) much easier
>> to handle. Still, this would give me trouble. Lack of proper garbage
>> collection means more memory bugs to hunt down.
>>
>> JEzyk Swift (podobnie jak Objectiwe C) MA odsmiecacz, konkretnie
>> implementacje zwana "reference counting". Ma sie to tak do
>> wspolczesnych odsmiecaczy jak woz drabiniasty do Mercedesa. To jest
>> wynajazek spzred 30 lat.
>>
>> Jednoczesnie, jak pisza wyzej, brak porzadnego odsmeicacza kreuje
>> problemy z wyciekaniem pamiei ("memory leaks") i skutkuje zwiekszonymi
>> kosztami i czasem niezbednym na zrobienie i pzretestowanei aplikacji.
>> Generalnie, gospodarka pamiecia w systemach bez GC jest mniej
>> efektywna niz w systemach z GC i skutkuje aplikacjami wymagajacymi
>> wiecej pamieci.
>>
>> Zapewne dlatego wsztsko w Apple jest drozsze. Podbnie jak drozszy
>> bylby stol robiony heblem i krajzegoa w porownaniu ze stolem zeobionym
>> przy pomocy automatycznych obrabiarek
>>
>> Wspolczesne GC (zwlaszcza w javie) dostarczane sa w wersji "parallel".
>> Oznacza to ze GC moze byc wykonywany w osobnym watku, "w tle"
>> aplikacji. W koncu, gdy pzrecietny procesor ma 4 "cores" tzreba je
>> jakos wykorzystac.
>
>Czy autor tych słów na ktore się tu powołujesz jest dla Ciebie jakimś
>autorytetem?
>Bo nie przytoczyłeś źródła tej wypowiedzi - może autor nie wie o czy mówi?
>
>Ja mam ponad 20-letnie doświadczenie w programowaniu w C/C++ i żadna pamięć
>w moich programach nie wycieka...
>
To jeszcze ciekawe jakie to sa programy
>Mam pewne przeczucie na podstawie pracy w innych językach programowania
>gdzie nie deklaruje się rozmiaru/typu zmiennej ani nie alokuje się dla niej
>specyficznego obszaru w pamieci RAM (ale brak bezposredniego doswiadzczenia
>w Javie)
Java jest akurat jezykiem silnie typowanym. Czy w C/C++ deklaruje sie
GDZIE w pamieci zmienna bedzie ulokowana? Jakos sobie nie przypominam.
> ze takie srodowisko promuje szybkie, niechlujne i bezmyslne
>korzystanie z zasobow pamieci...
>
Niby dlaczego? Pamiec w Javie alokuje sie tak samo jak w C++. Czas
zycia obiektu w Javie kontroluje sie pzrez referencje - jak dlugo jest
referencja do obiektu, tak dlugo nei bedzie on "odsmiecony". Znane sa
techniki programwoania gdzie obiektow sie nei zwalnia (to znaczy,
zachowuje sie referencje), a trzyma zbior obiektow do pozniejszego
wykorzystania. Co parwda, takie techniki stosowano w czasach Javy 1.1,
teraz sa juz niepotzrebne.
Bez odsmiecacza nei da sie efektywnie napisac w miare skomplikowwnego
programu. Gdy w pewnym momencie mamy zaalokowane, powiedzmy, 1000
obiektow i tworaz one skomplikowany graf zaleznosci, reczena
dealokacja ani nie am sensu ani szans na powodzenie. Zwlaszcza jezeli
taka struktuar tworzona jest dynamicznie
Zreszta, C++ tez ma "proteze" odsmiecacza - patrz "smart pointers" w
bibliotece Boost. Powszechnie tez stosowany jest pzrez programistow
C++ odsmiecacz zwany Boehm garbage collector. Biblioteka taka
A.L.
Następne wpisy z tego wątku
- 22.11.14 20:17 Pszemol
- 22.11.14 21:26 W
- 22.11.14 22:01 A.L.
- 22.11.14 22:21 Piotr Rezmer
- 22.11.14 23:11 Ghost
- 22.11.14 23:19 Pszemol
- 22.11.14 23:19 Pszemol
- 22.11.14 23:21 Pszemol
- 22.11.14 23:30 Ghost
- 22.11.14 23:35 A.L.
- 22.11.14 23:43 Pszemol
Najnowsze wątki z tej grupy
- Aero2
- odbiornik GPS z kablem USB
- iOS, działające wifi z autolockiem
- Z instrukcji do kitu
- Re: W telefonie brak szufladki na drugą kartę SIM
- W telefonie brak szufladki na drugą kartę SIM
- DNS restrictions are on
- Słabszy sygnał GSM od kilku tugodni
- Re: Tani dodatkowy sim do smartwacha
- Praktyczny test GPS...
- Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO
- Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO
- Karty przedpłacone (podarunkowe) Google Play - pytanie do korzystających
- Dlaczego sluchawka nie dzwoni?
- Google Play
Najnowsze wątki
- 2025-01-13 Zasięg Tesli przy szybszej jeździe
- 2025-01-13 Gdańsk => Application Security Engineer <=
- 2025-01-13 Białystok => System Architect (Java background) <=
- 2025-01-13 Warszawa => Konsultant ds. sprzedaży <=
- 2025-01-13 Warszawa => Key Account Manager <=
- 2025-01-13 Szczecin => Senior Field Sales (system ERP) <=
- 2025-01-13 Rzeszów => International Freight Forwarder <=
- 2025-01-13 Bydgoszcz => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-01-13 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-01-13 Warszawa => Staż w dziale Sprzedaży B2B <=
- 2025-01-13 Wydajność klimy w obecnych temperaturach
- 2025-01-13 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=
- 2025-01-13 Kraków => UX Designer <=
- 2025-01-13 Katowice => Key Account Manager (ERP) <=
- 2025-01-13 Mińsk Mazowiecki => Spedytor Międzynarodowy <=