Sein und Zeit

Sein und Zeit

Negli ultimi giorni, ho sperimentato due librerie di Open Jdk Code Tools Project con l’intento di verificare prestazioni e risorse di alcuni algoritmi che vorrei implementare. La prima è JMH, libreria per benchmarks, scritta in Java: basta solo implementare un runner e annotare opportunamente i metodi da testare JMH effettua delle chiamate intensive e restituisce dei benchmarks. Io l’ho utilizzata per testare due metodi differenti per generare dei tokens per una stringa abbastanza corposa: uno basato sul metodo split della…

Leggi tutto Leggi tutto

Java 15: sealing Java by the class – part one.

Java 15: sealing Java by the class – part one.

Nonostante il refrain “Java è un linguaggio morto” sia di moda anche nel 2020, nelle ultime versioni di Java, rilasciate attualmente al ritmo di una ogni sei mesi, sono comparse delle features interessanti. Ne abbiamo accennato nei precedenti post, qui e qui, relativamente a JDK 14. Ma le novità non si fermano qui: nella JSR 390, la cui implementazione di riferimento sarà la JDK 15, è prevista l’implementazione della JEP 360 relativa ai sealed type, vale a dire a classi…

Leggi tutto Leggi tutto

JDK 14 (and beyond)

JDK 14 (and beyond)

Nel precedente post abbiamo parlato delle nuove features di JDK14 che dalla roadmap dovrebbe essere disponibile – in prima RC a Giugno 2020. Tra le interessati features incluse, ricordiamo queste: 368: Text Blocks (Second Preview) 359: Records (Preview) Text Block. Feature presente in altri linguaggi (il solito Scala) consente di gestire una stringa multilinea, migliorando la leggibilità del codice. Ad esempio: public static String getQuery(){ String query = “”” select * from dummy where dummy.field = “””+12+””” “””; return query;}…

Leggi tutto Leggi tutto

Java 14 0.0.0.1

Java 14 0.0.0.1

Java 14 preview della preview Tra le varie JEP inserite per la JDK14, troviamo le seguenti: 305: Pattern Matching for instanceof (Preview) 361: Switch Expressions (Standard) 358: Helpful NullPointerExceptions 368: Text Blocks (Second Preview) 359: Records (Preview) A parte la 358 che prevede che nel messaggio di errore della Null Pointer Exception sarà indicata la variabile che ha valore null (!!!!!),è da dire che sia la 305 sia la 361 sia la 359 sembrano indicare un lavoro volto forse a…

Leggi tutto Leggi tutto

Elias Fano Encoding / 1

Elias Fano Encoding / 1

Uno dei più studiati problemi in Computer Science è quello di gestire nella maniera più efficiente una sequenza di n interi. A prima vista sembrerebbe un problema di scarso interesse, puramente teorico: al contrario, la gestione efficiente di una sequenza di n interi, quindi di un insieme più o meno ordinato di chiavi, è fortemente sentita, ad esempio, nella gestione delle ricerche tramite inverted index. Nel corso di questo articolo, descriverò una delle tecniche più utilizzate per questa indicizzazione: l’algoritmo di Elias Fano, sviluppato indipendentemente da Peter…

Leggi tutto Leggi tutto