Category: C++

22
mar
Hybris memory lookup, now Google powered!!!
Postato da il 22-03-2010 alle ore 01:32:26


No, non ho inserito un motore di ricerca dentro Hybris (sarebbe figo però vero? XD) !

Mi spiego … profilando un po l’interprete, mi è parso evidente che una delle funzioni che veniva richiamata più spesso durante l’esecuzione di uno script, come è facile immaginare, è quella per il look up delle variabili in memoria.

In pratica è la funzione che, dato il nome di una variabile (quindi una chiave), deve trovare l’oggetto associato all’interno del’array associativo che rappresenta la memoria virtuale di Hybris .

Così ho pensato a come ottimizzare l’algoritmo di ricerca, che prima si limitava a scorrere l’array contemporaneamente dall’inizio verso la fine e dalla fine verso l’inizio (in realtà un espediente abbastanza inutile quando ci sono poche variabili, ma quando sono molte si fa sentire) e ho capito che mi conveniva utilizzare una hash table .

Questo tipo di struttura è tanto efficiente quanto difficile da realizzare e, pensando che avrei impiegato giorni, se non settimane, per buttare giù un implementazione ottimizzata al massimo, mi son messo a cercare online se ne esistevano già di pronte e soprattutto di facilmente integrabili con quanto scritto fin’ora .

E che ti vado a scoprire?

More…

Popularity: 8% [?]

20
mar
Gestione “Smart” Della Memoria In Hybris : Parte II .
Postato da il 20-03-2010 alle ore 23:20:46


Come detto nell’ultimo articolo, negli ultimi commit di Hybris è stato inserito un garbage collector strutturato in modo tale da districarsi al meglio tra le varie ricorsioni e i vari deliri di allocazione nell’interprete .

Nell’articolo avevo anche detto che questo sistema, nonostante avesse il vantaggio di diminuire drasticamente l’utilizzo della memoria durante l’esecuzione di uno script, aveva lo svantaggio di diminuire anche le prestazioni complessive dato com’era strutturato l’algoritmo per determinare se un dato oggetto era deallocabile durante l’esecuzione dello script stesso, algoritmo che effettuava diversi controlli, tra i quali due loop (quelli che rappresentavano maggiormente il collo di bottiglia) sul frame della funzione chiamante e su quello della memoria principale.

Ebbene, sono un coglione XD .

Si avete letto bene, sono un coglione perchè avevo strutturato l’algoritmo ragionando “a posteriori” senza pensare che prevenendo questo controllo si poteva risolvere il problema ed aumentare anche le prestazioni rispetto a prima .

More…

Popularity: 6% [?]

17
giu
Kerby – Light weight video surveillance system.
Postato da il 17-06-2009 alle ore 14:30:48


Con mio grande piacere ho avuto modo di constatare che l’installazione di una webcam v4l compliant sulla mia scheda Alix è estremamente semplice, così mi è venuto in mente di riadattare un mio vecchio sistema di video sorveglianza per questa scheda, migliorandone le prestazioni, ottimizzandolo, etc .

Così è nato Kerby, per ora è poco quello che fa (ho appena eseguito il primo commit su github), mostra semplicemente la percentuale di movimento che il software rileva dalla webcam, ma presto diventerà qualcosa di molto + utile ;)

Pagina del progetto

Popularity: 3% [?]

31
mag
Pubblicato Eigetron
Postato da il 31-05-2009 alle ore 19:12:55


Come anticipato nell’articolo di ieri, ho realizzato un sistema di riconoscimento facciale che ora ho pubblicato .

Eigetron è un sistema di riconoscimento facciale completamente scritto da zero che utilizza l’algoritmo delle facce di Eigen per un matching abbastanza preciso rispetto ad un database precedentemente calcolato . Per la decomposizione degli eigenvalues e eigenvectors ho utilizzato l’algoritmo di Jacobi che rende la procedura, su matrici simmetriche, molto molto veloce .

More…

Popularity: 2% [?]

30
mag
Pubblicato BioIdentify
Postato da il 30-05-2009 alle ore 00:28:43


Dopo qualche mese dalla sua stesura ho deciso di pubblicare e condividere il mio primo progetto open che include tutte le funzioni necessarie al fine di elaborare delle impronte digitali .

BioIdentify (o bioid) è un applicazione da riga di comando che consente di estrarre le features dalle impronte digitali e salvarle in un file “BIR” (Biometric Identification Record), eseguire matching tra due impronte o identificare il padrone di un impronta all’interno di un database di BIRs precedentemente elaborato dall’applicazione stessa .

More…

Popularity: 2% [?]

25
mag
SoftWire : Runtime x86 Assembler
Postato da il 25-05-2009 alle ore 01:56:49


Tempo fa, cercando tutt’altro, scoprii un proggetto a dir poco eccezionale .

Un certo Nicolas Capens aveva realizzato una libreria scritta in C++ in grado di assemblare a runtime del codice assembly dentro un buffer che può essere chiamato come funzione, supportando l’intero instruction set x86 sia a 32bit che a 64bit .

More…

Popularity: 1% [?]

25
mag
TED – Network Event Daemon
Postato da il 25-05-2009 alle ore 00:21:36


Sarò paranoico io, o sarà che la sicurezza in ambito informatico non è mai troppa, ma ho sentito la necessità di avere uno strumento che mi avvisasse degli “eventi” della mia rete, come connessioni (o tentativi) dall esterno verso il mio pc o nuovi pc connessi sulla mia rete (non sia mai qualcuno dovesse attaccarsi alla mia wifi XD) .

More…

Popularity: 1% [?]

19
mag
MSP – Multi-Dimensional Space Processing Library
Postato da il 19-05-2009 alle ore 01:03:36


Uno dei rami che mi affascina di più della programmazione è la biometria, ovvero detto in parole povere, quella scienza informatica che studia i metodi di interazione tra mondo reale e mondo virtuale .

Scanner dell’impronta digitale, della retina, rilevatori di movimento … tutti questi concetti fanno parte della biometria .

More…

Popularity: 2% [?]

13
mag
C/C++ Code Optimization
Postato da il 13-05-2009 alle ore 08:28:58


Alcune semplici regole da seguire per scrivere codice C/C++ ottimizzato e performante, senza inutili sprechi di risorse quali cpu, ram e quant’altro .

Scarica

Popularity: 1% [?]

13
mag
C/C++ Function Pointers
Postato da il 13-05-2009 alle ore 08:17:24


In questo paper spiego cosa sono i function pointers, o puntatori a funzione, nel C/C++, come utilizzarli e qualche implementazione di esempio per rendere il tutto più chiaro ed intuitivo .

Scarica

Popularity: 2% [?]