Chirurgia endoscopică a hipofizei
"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală. Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale. www.neurohope.ro |
[Unity] Vector2
Last Updated: Nov 09 2017 18:26, Started by
Daniel2222
, Nov 08 2017 21:39
·
0
#1
Posted 08 November 2017 - 21:39
Vad prin multe coduri ca se foloseste new Vector2 in loopuri.
De exemplu, daca vreau sa mut un Player de la pozitia1 la pozitia2 cum ar trebui folosit acest Vector2? public void Move(float move, bool jump) { rb2d.velocity = new Vector2(move*MaxSpeed,rb2d.velocity.y); if (jump && Grounded) { Grounded = false; rb2d.AddForce(new Vector2(0f, JumpForce)); } } In codul de mai sus, aceasta functie este executata de butonul de mers inainte. Daca obtin 60 frameuri pe secunda asta nu inseamna ca o sa am 120 de noi vectori2 in memorie in 2 secunde? Nu e o risipa de memorie? Vad ca peste tot se foloseste in acest fel. Nu era mai corect sa se foloseasca Vector2 ca o variabla de instanta si in functia Move() decat sa fie modifiacat? De exemplu: Vector2 PlayerVeloc=new Vector2(0,0); // variabila de instanta public void MoveB(float move, bool jump) { PlayerVeloc.x = move * MaxSpeed; PlayerVeloc.y = rb2d.velocity.y; rb2d.velocity = PlayerVeloc; if (jump && Grounded) { Grounded = false; //la fel si aici rb2d.AddForce(new Vector2(0f, JumpForce)); } } Care cod ar trebui folosit? |
#2
Posted 08 November 2017 - 21:47
Daca iti pasa de memorie, folosesti C++ unde poti aloca linistit si pe stiva cand e convenabil.
|
#3
Posted 08 November 2017 - 21:53
Bun. Nu-mi pasa prea mult de memorie daca nu e o problema prea mare.
Dar de curiozitate... Care varianta ar fi mai eficienta? Prima sau a doua? Modificarea unui vector2 este mai lenta decat crearea unui nou vector sau de ce se foloseste asa? Edited by Daniel2222, 08 November 2017 - 22:04. |
#4
Posted 08 November 2017 - 22:16
Observ ca ai trecut Unity in titlu, deci e vorba de C# (credeam initial ca-i cod Java). Vector2 e struct sau class? Difera in cazul C# cum aloca memoria.
Cand ai dileme cu privire la performanta, cel mai sanatos e sa masori. Trebuie gasit mereu si un echilibru, o optimizare intr-un loc poate fi insesizabila practic chiar daca pe hartie e mai ok. Edited by dani.user, 08 November 2017 - 22:17. |
#5
Posted 08 November 2017 - 22:36
Aici mai intervine si jitterul care optimizeaza.
De aia e mai bine sa testezi. In .NET crearea unui vector nu consuma resurse de timp cine stie ce. Nu tre sa ia handle prin apel sistem catre sistemul de operare asa cum se face la alocare dinamica in C++. Dar pe de alta parte, lucrand in aceiasi zona de memorie, ai sanse mai mari sa intre in cacheul procesorului, depinde de rutinele alea de pe-acolo. |
#6
Posted 08 November 2017 - 22:38
Nu am modificat eu titlul, probabil alt moderator, dar ai dreptate. Este vorba Unity si de c#. Vector2 este struct.
Da, am probleme de performanta. La inceput totul merge foarte bine. Cum inaintez in nivel incepe sa scada numarul de frameuri. Cand scade acel numar sub 60 fps totul merge sacadat. Nu foarte mult dar destul de deranjant. Dar nu-i nimic, ii dau eu de cap! Edited by Daniel2222, 08 November 2017 - 22:46. |
#7
Posted 08 November 2017 - 22:50
Daca vorbesti de FPS, diferentele intre cele 2 coduri sunt absolut nesemnificative.
Vector2 e o variabila locala fara prea multa viata, nustiu cum functioneaza garbage collecteru, dar nu mi-as face probleme de la bucata asta de cod. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users