|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#61 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
__________________
|
|
|
|
|
|
|
#62 | ||
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 3461
|
Quote:
http://www.vlsilab.polito.it/thesis/alfonso/node87.html Quote:
Non sto parlando di giochini OpenGL, sto parlando di app con i contro-co*****ni e gli eseguibili compilati da codice C++ sono piu' performanti. E lo stesso vale per l'assembler. Se uno fosse talmente guru e pazzo da riuscire a codificare una app direttamente in assembler, le performance sarebbero ancora superiori a quelle ottenute scrivendola in C o C++. Ripeto che non sono cose che sostengo solo io, per carita'. C'e' una intera comunita' di sviluppatori che la pensa come me, e questa e' gente che VERAMENTE mangia codice su codice, pranzo con java e cena con C++ con dessert di Python. Per me questo discorso finisce qui. Nel senso che devi portarmi una applicazione scritta in java che fa le stesse identiche cose che intendo io e con eguale performance. E questo non e' possibile fidati.
__________________
Alienware M17xR3 // Intel Core i7 Processor 2670QM (2.20Ghz, 6MB, 4C); LCD 17.3in 120Hz w/ 3D Bundle WideFHD (1920 x 1080) WLED; RAM 8 Gb 1333MHz DDR3 Dual Channel; 1,5GB GDDR5 NVIDIA GeForce GTX 560M Ultima modifica di phoenixbf : 12-05-2007 alle 16:28. |
||
|
|
|
|
|
#63 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Sottolineo che la mia è solo un'ipotesi. Magari c'è un'altra ragione. Magari chi sviluppa quel genere di programmi ha provato a farli con altri strumenti, ha fatto i confronti e ha verificato che per le ragioni X,Y e Z le altre tecnologie non sono concorrenziali. L'hanno fatto... e non l'hanno detto a nessuno. Ma è possibile che l'abbiano fatto.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#64 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
con il C mi limitavo ad accedere con l'inline assembly alla memoria video dato che ai tempi in cui internet non esisteva era un pò difficile procurarsi librerie grafiche che superassero le limitazioni di 320X200 256 colori e 640X480 16 colori Per quanto riguarda Diamonds onestamente ho semplicemente usato le funzioni grafiche scritte da altri... tradotto: non mi sono messo a scrivere il Codice OpenGL effettivo ma mi sono appoggiato ai wrappers a disposizione. Una considerazione: Java è effettivamente limitato per le applicazioni Real-Time. Il problema di Java nell'ambito della grafica 3d imho non dipende dalle scarse prestazioni del linguaggio, ma soprattutto dalla natura inerentemente non real-time del linguaggio. Se stai facendo dei rendering a video di una scena non ti puoi permettere3 di perdere 500 ms perchè il GC ha deciso che deve rompere le Balle E' pur vero però che esiste una versione Real-Time di Java, ma dal poco che ho visto è termendamente complessa da utilizzare per gestire i meccanismi tipici per le applicazioni real-time. La soluzione migliore è imho utilizzare linguaggi di scripting per le parti meno avide di prestazioni del codice e andare ancora su C++ per le parti critiche. Ma in effetti mi sa che è proprio quello verso cui si sta muovendo il mercato
__________________
|
|
|
|
|
|
|
#65 | |
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 3461
|
Quote:
Pero' fu immediatamente smentito, da varie persone e con diverse argomentazioni, se ho tempo la ritrovo
__________________
Alienware M17xR3 // Intel Core i7 Processor 2670QM (2.20Ghz, 6MB, 4C); LCD 17.3in 120Hz w/ 3D Bundle WideFHD (1920 x 1080) WLED; RAM 8 Gb 1333MHz DDR3 Dual Channel; 1,5GB GDDR5 NVIDIA GeForce GTX 560M |
|
|
|
|
|
|
#66 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
Python lo trovo un pò + complesso.
__________________
|
|
|
|
|
|
|
#67 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Ok, siamo entrati nel campo della mitologia della scienza informatica
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#68 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
non conosco le altre filosofie in voga oggi... Ma il paradigma ad oggetti non lo vedo ancora così in voga in futuro. Basta ricordare ke l'informatica è in continua evoluzione e non possiamo sapere cosa avremo a disposizione tra 10 anni x questo no nmi sbilancio su scommesse del genere
__________________
|
|
|
|
|
|
|
#69 | |||||
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
Quote:
Quote:
Con i compilatori attuali le prestazioni di un'applicazione scritta in C++ sono + che sufficienti. L'assembly viene usato solo per ottimizzare le parti critiche di codice. Se c'è un metodo che occupa il 40% della CPU e questo metodo è in una porzione dello 0.0001% del codice non mi metto certo a ottimizzare il 100% del codice ma solamente lo 0.0001% critico Quote:
cmq ti assicuro che a livello di pranzo e cena (colazione solitamente non la faccio Quote:
![]() Il problema è che bisogna ricadere nel caso precedentemente spiegato dell'ottimizzazione. Se tu hai grandi parti di codice che NON sono soggette a limitazioni prestazionali le puoi scrivere in qualsivoglia linguaggio. Le parti critiche le devi scrivere nel linguaggio che ti dia il miglior rapporto tempo di programmazione speso/prestazioni ottenute. E cmq con le versione Real Time di Java magari si sarà un pò + limitati nelle prestazioni... ma a livello di funzionalità, stuttering e cose del genere le due applicazioni sono assolutamente comparabili.
__________________
|
|||||
|
|
|
|
|
#70 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
__________________
|
|
|
|
|
|
|
#71 | ||
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 3461
|
Si ma il punto cruciale sono proprio questi step intermedi (tra l'altro lo dice il testo stesso). io ti parlo di un campo dove una app 3D in base al fatto che ti va a 60 FPS o 50 FPS determina il fallimento del progetto.
Quote:
Anche nei giochi, alcune parti critiche dell'engine sono sritte in assembler. Quote:
LOL
__________________
Alienware M17xR3 // Intel Core i7 Processor 2670QM (2.20Ghz, 6MB, 4C); LCD 17.3in 120Hz w/ 3D Bundle WideFHD (1920 x 1080) WLED; RAM 8 Gb 1333MHz DDR3 Dual Channel; 1,5GB GDDR5 NVIDIA GeForce GTX 560M |
||
|
|
|
|
|
#72 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Codice:
def QuickSort(List): if len(List) <= 1: return List Pivot = List.pop() return QuickSort(filter(lambda x: x < Pivot, List)) + [Pivot] + QuickSort(filter(lambda x: x >= Pivot, List)) Interessante la funzione partition di Ruby. Molto elegante come linguaggio.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
|
#73 |
|
Senior Member
Iscritto dal: Nov 2001
Città: 100 metri dal mare
Messaggi: 4856
|
Ruby, a lavoro qualcuno si sa interessando e ne parlano tutti bene..
__________________
TIM FTTC 200/20 LIVE SPEEDTEST
|
|
|
|
|
|
#74 | |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Codice:
qsort [: :] = [: :]
qsort array = lt +++ eq +++ gt
where
pivot = array!0
lt = qsort [: x | x <- array, x < pivot :]
eq = [: x | x <- array, x == pivot :]
gt = qsort [: x | x <- array, x > pivot :]
Tra l'altro le VM di Python e Ruby hanno un po' di problemi nello sfruttare piu' processori, anche se probabilmente queste cose verranno prima o poi sistemate (jpython e jruby ad esempio non dovrebbero aver tali limit).
__________________
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 Ultima modifica di marco.r : 14-05-2007 alle 22:24. |
|
|
|
|
|
|
#75 | |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
occhio ai side effects
__________________
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 |
|
|
|
|
|
|
#76 | |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Per quel che riguarda le mie, devo dire che l'impressione che ho e' che effettivamente i programmi scritti in Java e C# siano in generale sensibilmente piu' lenti di una analoga controparte C/C++, ma che questo non sia dovuto tanto al linguaggio in se, quanto alla catasta di librerie che il programmatore si trova ad dover utilizzare, quasi nessuna pensata con le performance come primo obiettivo. Ad esempio in C++ gli stream di I/O sono molto piu' difficili da estendere, ma le uniche due operazioni costose risultano in pratica essere le operazioni riempimento/svuotamento del buffer. D'altra parte se non fosse cosi' basterebbe compilare tutto con gcj... piuttosto, soprattutto nel campo delle applicazioni desktop, piu' di qualche applicazione Python da la sensazione di essere piu' "sveglia", anche se magari non e' la piu' veloce in giro.
__________________
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 |
|
|
|
|
|
|
#77 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Onestamente mi sfugge: potresti indicarmi dove starebbe il bug? Grazie.
EDIT: penso d'aver capito. Codice:
def QuickSort(List): if len(List) <= 1: return List Pivot = List.pop() Less = filter(lambda x: x < Pivot, List) More = filter(lambda x: x >= Pivot, List) return QuickSort(Less) + [Pivot] + QuickSort(More) EDIT2: è pure più leggibile. Meglio così.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys Ultima modifica di cdimauro : 14-05-2007 alle 23:09. |
|
|
|
|
|
#78 |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Il problema permane per il ciclo piu' esterno.
Secondo me meglio non modificare la lista, e lavorare in modo piu' "funzionale". In sostanza al posto di Codice:
Pivot = List.pop() Codice:
Pivot = List[0] List = List[1:]
__________________
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 |
|
|
|
|
|
#79 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Capito. Grazie.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:07.






















