![]() |
Second Opinion
Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale. Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit. www.neurohope.ro |
gestiunea memoriei - alocare ~ dealocare - facuta de programator sau runtime
Last Updated: Apr 21 2021 08:30, Started by
coniac
, Apr 04 2021 20:27
·
0

#1
Posted 04 April 2021 - 20:27

Poate imi explici si mie care e legatura dintre gestiunea memoriei - alocare ~ dealocare - facuta de programator sau runtime, pe de o parte, si cantitatea de memorie folosita de un program, care poate fi cel mult estimata, dupa o suma de testari care au in vedere o serie de "use-case"-uri, daca esti amabil
In Java poti specifica memoria maxima alocata procesului JVM De exemplu ### Heap space configuration in Tomcat: If you are using Tomcat, edit catalina.bat for windows users or catalina.sh for linux / Mac users in Windows set JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=256m" in Linux / Mac export JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=256m" Ce treaba au pointerii aici ![]() |
#2
Posted 04 April 2021 - 22:24

Fun fact, programele in Java nu crapa niciodata si Java nu te obliga sa incarci in memorie fisiere de enspe giga
![]() Probabil principalul motiv pentru care se vorbeste de inutilitatea facultatii este calitatea acestora in Romania. Dar chiar si asa, pentru cine chiar vrea sa invete sint infinit mai utile decit studiul solo sau aberatiile de “academii de IT”. |
#3
Posted 05 April 2021 - 07:41

Ok, cred ca ce vreau eu e diferit de ce se asteapta publicul acestui post. Eu unul sunt satul de programe scrise in Java care crapa indiferent cate memorie le permiti, genul de aplicatii unde fisierele se incarca in memorie, indiferent ca au 5 MB sau 5 GB. Una peste alta gestiunea memoriei e mereu importanta, fie ca o faci direct (cum e in C/C++) sau indirect. Pur si simplu un programator trebuie sa stie cata memorie consuma abordarea pe care o foloseste. Desi din cele scrise mai sus inteleg ca un programator Python sau Java nu trebuie sa stie astfel de lucruri. Poate eu definesc altfel ce e un dezvoltator software fata de ceea ce piata zice. Oricum, dupa cum afirmam initial, un programator poate fi foarte bun pentru o firma dar foarte prost pentru alta. Edited by aaaa4567, 05 April 2021 - 07:42. |
#4
Posted 05 April 2021 - 07:49

Gestiunea memoriei e utila. Sa nu te apuci sa creezi obiecte word intr-o bucla in bucla si alte d-astea, sa faci curatenie dupa tine. Sa stii ca se face automat asta, sa stii cand e nevoie de exceptii etc.
Electronica este utila. As tranti un programator, orice porogramator, care nu e in stare sa imi spuna cum merge un automat simplu, sau o statie meteo. Care nu stie ce face un tranzistor, AO, sau alte chestii. Nu zic ce cei care lucreaza cu hardware, zic de cei care lucreaza cu software. Chestii simple, la niveld e tehnician. Ca si la altele. E un semnprost sa stii numai bucata de materie ce e scrisa la specificatii. Adica, nu te pun sa faci integrale prin parti, nici sa imi spui clase medicatie sau anii de domnie ai lui Mihai Viteazu, dar daca spui senin ca Eminescu a scris Amintiri din copilarie sau ca nu stii cat face (a+b)^2 , atunci e o problema... |
#5
Posted 05 April 2021 - 07:54

[...]Adica, nu te pun sa faci integrale prin parti, nici sa imi spui clase medicatie sau anii de domnie ai lui Mihai Viteazu, dar daca spui senin ca Eminescu a scris Amintiri din copilarie sau ca nu stii cat face (a+b)^2 , atunci e o problema... |
#6
Posted 05 April 2021 - 08:58

Wow. That's exactly the problem. Eu intotdeauna am crezut ca scopul angajarii cuiva, cand vorbim de programare, e sa ajute la scoaterea unui produs finit pe piata. Nu stiu cum sa zic dar daca e sa aleg intre unul care stie un framework care ma ajuta sa scot la timp produsul si altul care imi propune sa reinventeze framework-ul dar sa ratez deadline-ul, aleg pe ala care stie framework-ul. Sigur, o sa manance memorie mai multa si o sa fie mai lent. Daca vrei sa faci optimizari, le faci dupa ce ai lansat produsul eventual. Asta-i realitatea industriei software, cicluri scurte in care folosesti tot ce stii ca sa lansezi produsul pe piata, ca de-acolo vin banii. Am lansat cred ca cateva zeci de aplicatii in acest fel. Foarte multe proiecte esueaza fiindca pierd din vedere scopul final: lansarea pe piata in timpul stabilit. Nu memoria sau viteza cea mai buna sunt scopul final, sorry. E frumos sa le ai, dar nu e scopul final. Facultatea ar trebui sa incurajeze programatorii sa cerceteze ce s-a facut deja, dupa ce au bazele. Sa stie ce trebuie folosit ca sa-ti atingi scopul si ca nu orice trebuie refacut de la zero. Unii angajatori in occident lasa candidatii sa caute pe google cand nu stiu sa raspunda la o intrebare. Scopul nu e sa incui sau sa blochezi potentialul angajat cu ce stii tu, ci sa-ti dai seama daca respectivul se poate descurca sub presiune, poate gasi solutii care sa te scoata la liman. |
#7
Posted 05 April 2021 - 09:11

Am ceva experienta in domeniu, zic eu, si mereu am avut probleme cu biblioteci gata-facute. De obicei e vorba ca nu fac exact de ce avem nevoie. In alte situatii nu merg si atunci devine interesant cand trebuie sa depanezi codul altuia. O alta categorie e cand folosesti o biblioteca si autorul isi baga picioarele si nu mai lucreaza la ea.
Cand lucrezi pe codul tau, e alta poveste. Controlezi totul, stii cum e facut si stii cum sa-l extinzi. Nu iti mai faci griji ca apare un update la ceva API si trebuie sa astepti pe altul sa-ti actualizeze soft-ul. Cea mai deranjanta realitatea e actualizarea intreg ecosistemului. Pana e gata un proiect (6 luni) apar alte versiuni de framework-uri si ale limbajelor si din start proiectul tau e facut pe o platforma depasita. Anyway, am tinut interviuri si era evident in 5 minute cine a facut facultatea si cine nu. Edited by RedDev, 05 April 2021 - 09:22. |
#8
Posted 05 April 2021 - 09:22

Quote
este un domeniu ceva mai special din mai multe puncte de vedere: 1. Suportul tehnic necesar este disponibil aproape oricui. Nu ai nevoie (practic) decât de un computer și conexiune la internet, ambele fiin super-facil de obținut în zilele noastre. Multe alte facultăți au nevoie de echipament specializat de laborator (gen laborator de înaltă tensiune pentru energetică și electrotehnică) sau condiții speciale (gen medicină, farmacie) pentru orice chestie practică. Pentru IT, un computer (mai mult sau mai puțin capabil) te lasă să experimentezi cam cu orice vrei cu riscuri aproape zero. Chestia asta se poate spune si despre fizica teoretica. Ba chiar daca nu te bagi pe fizica computationala, n-ai nevoie nici de calculator. Ajung un pix si niste foi de hartie. De-aia geme lumea de fizicieni teoreticieni exceptionali ne-scolarizati sau facuti cu un curs de trei luni. |
#9
Posted 05 April 2021 - 12:13

Electronica este utila. As tranti un programator, orice porogramator, care nu e in stare sa imi spuna cum merge un automat simplu, sau o statie meteo. Care nu stie ce face un tranzistor, AO, sau alte chestii. Nu zic ce cei care lucreaza cu hardware, zic de cei care lucreaza cu software. Chestii simple, la niveld e tehnician. Adica desconsideri pe toti care au terminat informatica sau similare, fara studii hardware. Fiindca... de ce?
Am ceva experienta in domeniu, zic eu, si mereu am avut probleme cu biblioteci gata-facute. De obicei e vorba ca nu fac exact de ce avem nevoie. In alte situatii nu merg si atunci devine interesant cand trebuie sa depanezi codul altuia. O alta categorie e cand folosesti o biblioteca si autorul isi baga picioarele si nu mai lucreaza la ea. Cand lucrezi pe codul tau, e alta poveste. Controlezi totul, stii cum e facut si stii cum sa-l extinzi. Nu iti mai faci griji ca apare un update la ceva API si trebuie sa astepti pe altul sa-ti actualizeze soft-ul. Pentru multe domenii s-au consolidat dealungul anilor biblioteci puternice. Folosite/testate de mii de alti dezvoltatori. Nu-mi amintesc cand a trebuit sa fac debug prin vreuna. Poate ar merita un topic separat cu ce biblioteci te-au suparat atat de tare de ai decis sa reinventezi mereu roata. |
#10
Posted 05 April 2021 - 12:40

@RedDev Daca tu la un interviu python intrebi de pointeri si referinte ... lasa-te Da, se poate lucra eficient si fara sa stii asta. Dar nu pe proiecte complexe in mod independent. |
|
#11
Posted 05 April 2021 - 21:17

Adica desconsideri pe toti care au terminat informatica sau similare, fara studii hardware. Fiindca... de ce? referinte in C++, doar ca pe dos. ![]() Cit despre gestionarea memoriei si cit de buni sint oamenii la a face asa ceva manual, cam toate crash-urile pe care le intilnim vin de la faptul ca un geniu in gestionarea memoriei a gestionat memoria in mod fabulos. Sau mai nasol, cind un gestionator din-asta de memorie reuseste sa-si raspindeasca creatia in tot universul si desi e open source nici un alt gestionator de memorie nu-si da seama de gherla, apar chestii apocaliptice gen bugu Open SSL de acum citiva ani. |
#12
Posted 05 April 2021 - 22:01

prefer cum e în java, gestionarea memoriei automate, ca limbajul nu poate opri un geniu sa încarce un fișier de 5g în ram asta nu ma deranjează, cine face asta o va face în orice limbaj, nu doar în java.
e posibil totuși la limbajele cu gestionarea automata lumea sa uite de memorie și sa facă prostii de genul asta mai des, dar cred ca la schimb evita alte tâmpenii care le-a face într-un limbaj unde memoria se gestioneza manual |
#13
Posted 05 April 2021 - 22:33

Insa in Java, un ArrayList<Integer> ocupa memorie cat nu te astepti...
|
#14
Posted 05 April 2021 - 22:43

te cam aștepți
![]() problema e cât ocupa un object și cât ocupa array list-ul ala, daca știi cu ce lucrezi nu ai probleme |
#15
Posted 05 April 2021 - 23:11

Sigur, o sa manance memorie mai multa si o sa fie mai lent. Daca vrei sa faci optimizari, le faci dupa ce ai lansat produsul eventual. Asta-i realitatea industriei software, cicluri scurte in care folosesti tot ce stii ca sa lansezi produsul pe piata, ca de-acolo vin banii. Am lansat cred ca cateva zeci de aplicatii in acest fel. @Criss, multumesc frumos pt explicatii din postura de inside man. Chiar nu intelegeam de ce o gramada de aplicatii dezvoltate in Romania se misca penibil, ca sa nu zic ca se misca ca un cur, acum pricep. Culmea e ca desi recunoasteti nonsalant ca dezvoltati si vindeti aplicatii proaste, nu aveti nici un fel de greturi sa va vaitati pe alte topicuri de aplicatiile folosite de sistemul de stat din Romania, care, in mod evident, sunt dezvoltate tot de voi sau de unii care gandesc la fel ca voi... Ai de curul nostru,,,, In fine, ma scuzati de off topic sau stergeti postul, cum credeti de cuviinta. |
|
#16
Posted 05 April 2021 - 23:26

#17
Posted 05 April 2021 - 23:40

da, din păcate nu oferă asta, exista librarii care oferă liste de primitive sau se pot implementa. se cam merge pe ideea ca memoria e ieftina
![]() am impresia ca la următoarea versiune de Java va exista și asa ceva |
#18
Posted 06 April 2021 - 07:09

Chiar nu intelegeam de ce o gramada de aplicatii dezvoltate in Romania se misca penibil, ca sa nu zic ca se misca ca un cur, acum pricep. ![]() |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users