|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#81 | |
|
Senior Member
Iscritto dal: Jan 2003
Città: Milano - Udine
Messaggi: 9418
|
Quote:
"Immagina che la vita per come la conosci si fermasse instantaneamente e le particelle esplodessero alla velocità della luce..." |
|
|
|
|
|
|
#82 | |
|
Senior Member
Iscritto dal: Jan 2003
Città: Milano - Udine
Messaggi: 9418
|
Quote:
Poi d'accordo, ti serve un'applicazione che giri in ambiente realtime, magari mission critical (siamo già in un contesto di ampia minoranza) e causa forza maggiore parte del codice sarà Assembly (riduciamo ancora di + la fetta di cui sopra), qui userai probabilmente dei GoTo...sì ma nicchia... |
|
|
|
|
|
|
#83 | |
|
Registered User
Iscritto dal: Feb 2008
Messaggi: 77
|
Quote:
Mi sono ricreduto anche io lavorando sia in c++ che in c#: a parte il tempo di startup maggiore dovuto al compilatore JIT l'esecuzione di codice managed è davvero molto veloce, in alcuni casi meglio del codice unmanaged. E soprattutto quando metti l'applicazione su un IA64 non devi ricompilare Rigurado invece la velocità (all'interno dello stesso linguaggio) tra goto ed exception non sono d'accordo: Codice:
static void Main()
{
int t = Environment.TickCount;
for(int i = 0; i < 1000000; ++i) Exce();
Console.WriteLine("EXCE: {0} ms", Environment.TickCount - t);
t = Environment.TickCount;
for(int i = 0; i < 1000000; ++i) GoTo();
Console.WriteLine("GOTO: {0} ms", Environment.TickCount - t);
Console.ReadKey();
}
static void Exce()
{
try
{
for(int i = 0; i < 10; ++i)
{
if(i == 5)
throw new Exception();
}
}
catch
{ }
}
static void GoTo()
{
for(int i = 0; i < 10; ++i)
{
if(i == 5)
goto Exit;
}
Exit: ;
}
Codice:
EXCE: 32422 ms GOTO: 16 ms |
|
|
|
|
|
|
#84 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Peccato che se scarichi i sorgenti del .NET sono identici a quelli visti con Reflector. Quindi nessun errore di decompilazione. Hanno usato il goto anche in codice C#. |
|
|
|
|
|
|
#85 |
|
Registered User
Iscritto dal: Feb 2008
Messaggi: 77
|
Siccome stanno facendo manutenzione al server col DB, e quindi per ora non ho una mazza da fare
Codice:
#include <windows.h>
#include <iostream>
void Exce()
{
try
{
for(int i = 0; i < 10; ++i)
{
if(i == 5)
throw std::exception();
}
}
catch(...)
{ }
}
static void GoTo()
{
for(int i = 0; i < 10; ++i)
{
if(i == 5)
goto Exit;
}
Exit: ;
}
int main()
{
DWORD t = GetTickCount();
for(int i = 0; i < 1000000; ++i) Exce();
std::cout << "EXCE: " << (GetTickCount() - t) << " ms" << std::endl;
t = GetTickCount();
for(int i = 0; i < 1000000; ++i) GoTo();
std::cout << "GOTO: " << (GetTickCount() - t) << " ms" << std::endl;
char c;
std::cin >> c;
return 0;
}
Codice:
EXCE: 5016 ms GOTO: 0 ms |
|
|
|
|
|
#86 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#87 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
__________________
|
|
|
|
|
|
|
#88 | |
|
Registered User
Iscritto dal: Feb 2008
Messaggi: 77
|
Quote:
Modificando i for così: Codice:
if(i == 5)
{
GetTickCount();
throw std::exception();
}
if(i == 5)
{
GetTickCount();
goto Exit;
}
Codice:
EXCE: 5017 ms GOTO: 16 ms --> Come nel C# Quindi si deduce che: - Il compilatore VC++ e più intelligente del VC# - Le eccezioni del C++ sono molto più veloci che nel C# (sempre che anche qui non ci siano ottimizzazioni solo in C++) - I goto si equivalgono in C++ e C# |
|
|
|
|
|
|
#89 | ||
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
||
|
|
|
|
|
#90 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Prendere in mano un libro e imparare ad usare i template ti sembra una perdita di tempo?
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#92 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Le eccezioni NON si usano per uscire dai cicli!
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#93 |
|
Registered User
Iscritto dal: Feb 2008
Messaggi: 77
|
|
|
|
|
|
|
#95 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Nel frattempo quel linguaggio senza goto scritto da una scimmia (Python), mi ha fatto perdere una giornata di lavoro.
Eh si', e' troppo complesso dirmi che ho dimenticato di inizializzare una variabile a tempo di compilazione, o almeno inizializzarsela da solo... Me lo deve dire dopo tre ore di esecuzione e con un messaggio di errore che non c'entra nulla Quanto amo Python... si' si'.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#96 | |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
C'e' una tecnica di sviluppo chiamata Test Driven Development che e' una bomba per questo tipo di problemi, potresti farci un pensierino Si scherza eh !
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
|
#97 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
|
|
|
|
|
|
#98 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
![]() secondo me dovrebbe prendere qualche lezione da settantunomilacentoquattro
__________________
|
|
|
|
|
|
|
#99 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#100 |
|
Senior Member
Iscritto dal: Jan 2003
Città: Milano - Udine
Messaggi: 9418
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:28.




















