Domanda

Domanda su Cassandra

Perché l'inferno sulla terra qualcuno vorrebbe scrivere un MOTORE di database in Java ?
Posso capire perché si vorrebbe avere una interfaccia Java, ma il motore...

Ho avuto l'impressione che non c'è niente di più veloce di C/C++, e che un motore di database non dovrebbe essere più lento di velocità max, e certamente non utilizzare la garbage collection...

Qualcuno può spiegarmi che senso che fa / perché Cassandra può essere più veloce di ordinaria SQL che viene eseguito su codice C/C++?

Edit:
Scusate per il "Perché l'inferno sulla terra" di parte, ma in realtà non ha alcun senso per me.
Ho trascurato di considerare che un database, a differenza di giardino medio-varitety programmi utente, deve essere avviato solo una volta e poi corre per un tempo molto lungo, e probabilmente anche l'unico programma sul server, che ovviamente rende per un'importante differenza di prestazioni.

Ero più il confronto/riferimento a un 'rompe' (per usare un eufemismo) Java fiscale programma che stavo usando in quel momento (o meglio sarebbe piaciuto utilizzare).

Infatti, a differenza di Java per imposte programmi, l'utilizzo di Java per la scrittura di un programma server dedicato ha perfettamente senso.

È stato utile?

Soluzione

Posso vedere un paio di motivi:

  • Sicurezza:e ' più facile scrivere secure software in Java che in C++ (ricordate il buffer overflow?)
  • Prestazioni:non è CHE peggio.E ' sicuramente peggio all'avvio, ma una volta che il codice è in esecuzione, non è una grande cosa.In realtà, è necessario ricordare il punto importante qui:Il codice Java è continuamente ottimizzato dalla VM, in modo che, in alcune circostanze, diventa più veloce di C++

Altri suggerimenti

Che cosa vuoi dire, C++?Mano codificato assemblea sarebbe più veloce se si dispone di un paio di decenni di ricambio.

Perché l'inferno sulla terra qualcuno vorrebbe scrivere un MOTORE di database in JAVA ?

Piattaforma di indipendenza, è un importante fattore per i server, perché hai un sacco di hardware e OS heterogenity che con i Pc desktop.Un altro è la sicurezza.Non doversi preoccupare di buffer overflow significa che la maggior parte della peggior specie di buchi di sicurezza sono semplicemente impossibile.

Ho avuto l'impressione che non c'è niente di più veloce di C/C++, e che un motore di database non dovrebbe essere qualsiasi più lento di velocità max, e certamente non utilizzare spazzatura collezione...

La tua impressione è corretta.C/C++ non è necessariamente più veloce di Java, e moderni, i raccoglitori hanno una grande parte che ne permettono la creazione di un oggetto per essere incredibilmente veloce.

Non dimenticate che la Java Vm di fare uso di un just-in-time (JIT) motore che eseguire on-the-fly ottimizzazioni per rendere Java paragonabile al C++ in termini di velocità.Tenendo presente che Java è abbastanza produttivo lingua (nonostante i suoi oppositori) e portatile, insieme con il JIT ottimizzazione della capacità, significa che Java non è irragionevole la scelta per qualcosa di simile a questo.

La pena di prestazioni per i moderni runtime di Java non è così grande e la programmazione in Java è meno soggetto a errori che in c.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top