Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Duminica, "sportivii ♧&...

Metropola lui Pandele se orientea...

oprirea taximetristilor pe singur...

Curatat viniluri. Cand? Cum? Cu ce?
 Ajutor informații Bucure5...

Poor Things - 2023

Delphin Palace vs Sunis Elita

Apartament 3 camere, proprietari ...
 An constructie bloc din Bucuresti

Masina de spalat rufe Slim Beko W...

Sfat achizitie telefon dimensiuni...

Setare limba tastatura laptop.
 Lenovo Ideapad 3-15ALC6 LCFC HS46...

filtru de particule benzina GPF

Rascumparare titluri de stat TEZA...

Chirie la Administratia Fondului ...
 

gestiunea memoriei - alocare ~ dealocare - facuta de programator sau runtime

- - - - -
  • Please log in to reply
36 replies to this topic

#1
coniac

coniac

    Member

  • Grup: Members
  • Posts: 497
  • Înscris: 17.12.2019
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
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,294
  • Înscris: 21.04.2004
Fun fact, programele in Java nu crapa niciodata si Java nu te obliga sa incarci in memorie fisiere de enspe giga :w00t:

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
aaaa4567

aaaa4567

    Senior Member

  • Grup: Senior Members
  • Posts: 9,438
  • Înscris: 18.10.2011

View PostRedDev, on 04 aprilie 2021 - 19:53, said:

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.
Daca te referi la gestiunea memoriei in general (limbajele/platformele managed) - atunci da, ai nevoie de cunostinte (garbage collector/gestiunea resurselor etc). Daca te referi, insa, la subtilitatile si problemele alocarii de memorie specifice limbajelor nonmanaged (C/C++), atunci e alta treaba. Un programator regular care nu lucreaza curent cu C/C++ nu pea are nevoie de asa ceva. De altfel, in multe cazuri gestionarea memoriei (asa cum a fost implementata) e o recunoscuta sursa de buguri/probleme. De aia a fost si scoasa in limbajele managed! E, in multe cazuri, o complicatie obositoare si nenecesara. E tricky si pentru cineva care stie (si care e grabit, obosit), dara-mi-te pentru cinmeva care nu stie prea bine. Iar cei multi programatori nu sunt veterani in C. Daca nu lucrezi mai multi ani, cam uiti lucrurile.

Edited by aaaa4567, 05 April 2021 - 07:42.


#4
aaaa4567

aaaa4567

    Senior Member

  • Grup: Senior Members
  • Posts: 9,438
  • Înscris: 18.10.2011
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
buntzi

buntzi

    Senior Member

  • Grup: Senior Members
  • Posts: 5,313
  • Înscris: 09.09.2006

View Postaaaa4567, on 05 aprilie 2021 - 07:49, said:

[...]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...
De ce ar fi o problemă? Cu ce te afectează pe tine ca tehnician IT toate chestiile alea? Ce au scrierile lui Eminescu în mod diferit față de anii de domnie ai lui Mișu' Bătăiosu'?

#6
Cris007

Cris007

    Superior Member

  • Grup: Senior Members
  • Posts: 52,597
  • Înscris: 06.08.2004

View PostRedDev, on 04 aprilie 2021 - 19:03, said:

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
RedDev

RedDev

    Active Member

  • Grup: Members
  • Posts: 1,920
  • Înscris: 29.10.2014
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
parabellum

parabellum

    Senior Member

  • Grup: Senior Members
  • Posts: 2,439
  • Înscris: 06.01.2010

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
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,116
  • Înscris: 24.02.2007

View Postaaaa4567, on 05 aprilie 2021 - 07:49, said:

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?

View PostRedDev, on 05 aprilie 2021 - 09:11, said:

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
blitz09

blitz09

    Member

  • Grup: Members
  • Posts: 425
  • Înscris: 05.11.2007

View Postconiac, on 04 aprilie 2021 - 18:41, said:

@RedDev Daca tu la un interviu python intrebi de pointeri si referinte ... lasa-te
Am tinut zeci de interviuri de Python. In general nu intreb de asta, dar nici nu as exclude automat o asemenea intrebare. Un senior Python ar trebui sa inteleaga cum se transmit parametrii in Python, si pentru asta ai nevoie sa stii ce e aia o referinta. Sigur ca se ocupa limbajul de gestiunea memoriei, dar daca nu stii cum functioneaza referintele in Python risti sa faci niste buguri urate. Daca cineva mi-ar  veni la interviu cu o atitudine de genul asta, ca in Python nu conteaza conceptul de referinte, l-as depuncta la doua capitole si in nici un caz nu l-as considera senior. In primul rand cunostinte gresite, in al doilea rand si mult mai grav auto-suficienta care poate crea probleme mult mai mari pe termen lung.

Da, se poate lucra eficient si fara sa stii asta. Dar nu pe proiecte complexe in mod independent.

#11
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,294
  • Înscris: 21.04.2004

View Postdani.user, on 05 aprilie 2021 - 12:13, said:

Adica desconsideri pe toti care au terminat informatica sau similare, fara studii hardware. Fiindca... de ce?
Daca m-ar intreba cineva la un interviu despre tranzistori i-as zice ca-i tampit si as pleca linistit in treaba mea. Ii ca si cum l-ai intreba pe unu care vrea sa se angajeze la Intel sau AMD despre pointeri si
referinte in C++, doar ca pe dos.  :lol:

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
romio79

romio79

    Active Member

  • Grup: Members
  • Posts: 1,655
  • Înscris: 30.03.2005
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
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,116
  • Înscris: 24.02.2007
Insa in Java, un ArrayList<Integer> ocupa memorie cat nu te astepti...

#14
romio79

romio79

    Active Member

  • Grup: Members
  • Posts: 1,655
  • Înscris: 30.03.2005
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
DarthBane

DarthBane

    Senior Member

  • Grup: Senior Members
  • Posts: 3,486
  • Înscris: 22.03.2021

View PostCris007, on 05 aprilie 2021 - 08:58, said:



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
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,116
  • Înscris: 24.02.2007

View Postromio79, on 05 aprilie 2021 - 22:43, said:

te cam aștepți Posted Image

problema e cât ocupa un object și cât ocupa array list-ul ala, daca știi cu ce lucrezi nu ai probleme

Te-ai astepta sa ofere o solutie simpla pentru a ocupa in jur de (4x numar de elemente) bytes, cum e banalul std::vector<int32_t> din C++.

#17
romio79

romio79

    Active Member

  • Grup: Members
  • Posts: 1,655
  • Înscris: 30.03.2005
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
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,294
  • Înscris: 21.04.2004

View PostDarthBane, on 05 aprilie 2021 - 23:11, said:

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.
Nu se misca penibil din cauza memoriei, ci mai degraba din cauza de overengineering si utilizare de enspe frameworkuri si librarii, fiecare cu propriile bube. Ca sa faci un simplu hello world request-ul tau poate merge prin 75000 de clase. Pina la urma e un compromis intre a merge "penibil" si a face totul de la zero in 10 ani in loc de 1 an, de-aia se prefera sa se faca softul rapid si sa se bage bani in hardware, problema ii cind nu ai bani sa bagi in hardware. E o chestie universala, n-are nimic de-a face cu Romania. Si sigur ca daca combini situatia asta si cu o implementare proasta lucrurile devin si mai nasoale Iar cind vorbim de aplicatii care folosesc baze de date si alte conexiuni cu alte sisteme, fiecare cu bubele lor, problema se amplifica exponential. Java, ca limbaj, nu are saracu nici o vina... :w00t:

Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate