Newsgroup: it.lavoro.informatica
Titolo: java vs c++ - concatenazione stringhe - rivisto

 
 
 
Viste le lamentele della banda java,direi appropriate (a parte gli 
insulti che non fanno onore a nessuno) ecco un confronto rivisto
tra java/C++ sulla concatenazione di stringhe.
 
Java ora usa StringBuilder e C++ usa char16_t come dimensione dei 
caratteri per essere uguale alla size del char di java.
Per c++ non uso wchar_t in quanto e' implementation defined come size e 
su g++ di majaro e' a 32bit
 
 
l'os e' una majaro18 stable con cpu un core su macchina virtuale 4G di 
Ram assegnati.
come jdk viene usato openjdk8 di default/oracle jdk8/oracle jdk11 il 
tutto a 64bit
per c++ il compilatore di default,g++ a versione 8.2.1 con produzione 
codice a 64bit
PS:
a chi si mettera a scrivere insulti non verra data risposta
sono accettate critiche,purche costruttive
 
 
--- c++ --
#include <string>
#include <iostream>
#include <sstream>
#include <codecvt>
#include <locale>
 
 
using char_t=char16_t;
using string_t=std::basic_string<char_t>;
 
inline string_t rpt(const string_t& s,std::size_t n) {
	string_t t;
	t.reserve(s.size() * n);
	while(n--)
		t += s;
	return t;
}
 
template <typename T>
inline T convert(const char* s) {
	T n;
	std::istringstream os(s);
	os >> n;
	return n;
}
 
template <>
inline string_t convert(const char* s) {
	std::wstring_convert<std::codecvt_utf8<char_t>,char_t> conv;
	return conv.from_bytes(s);
}
 
int main(int argc,char** argv) {
	static_assert(sizeof(char_t) == 2);
	++argv;
	auto loop=convert<std::size_t>(*argv++);
	const auto s=convert<string_t>(*argv++);
	const auto n=convert<std::size_t>(*argv);
	while(loop--)
		rpt(s,n);
}
 
 
--- java ---
class Rpt {
 
	static StringBuilder rpt(StringBuilder s,int n) {
		StringBuilder t=new StringBuilder(s.length() * n);
		while(n-- != 0)
	 		t.append(s);
		return t;
	}
 
	public static void main(String[] args) {
		long loop=Long.parseLong(args[0]);
		int n=Integer.parseInt(args[2]);
		StringBuilder s=new StringBuilder(args[1]);
		while(loop-- != 0)
			rpt(s,n);
	}
 
};
 
---- lo script di lancio
 
#!/bin/sh
rm -f a.out *.class *.o
javac -version
javac  rpt.java
g++ --version
g++ -std=c++11 -O2  rpt.cpp
 
echo "loop: $1"
echo "string: $2"
echo "n: $3"
 
for x in 1 2 3
do
	time java Rpt "$@"
	time ./a.out  "$@"
done
 
- lancio con openjdk che e' il default:
 
bash -x ./rpt.sh 10000000 abc 500
 
+ rm -f a.out Rpt.class '*.o'
+ javac -version
javac 1.8.0_192
+ javac -O rpt.java
+ g++ --version
g++ (GCC) 8.2.1 20180831
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
+ g++ -std=c++11 -O2 rpt.cpp
+ echo 'loop: 10000000'
loop: 10000000
+ echo 'string: abc'
string: abc
+ echo 'n: 500'
n: 500
+ for x in 1 2 3
+ java Rpt 10000000 abc 500
 
real	0m36,018s
user	0m34,084s
sys	0m0,901s
+ ./a.out 10000000 abc 500
 
real	0m18,833s
user	0m18,371s
sys	0m0,007s
+ for x in 1 2 3
+ java Rpt 10000000 abc 500
 
real	0m36,485s
user	0m34,246s
sys	0m0,758s
+ ./a.out 10000000 abc 500
 
real	0m19,248s
user	0m17,690s
sys	0m0,852s
+ for x in 1 2 3
+ java Rpt 10000000 abc 500
 
real	0m36,006s
user	0m34,445s
sys	0m0,606s
+ ./a.out 10000000 abc 500
 
real	0m19,188s
user	0m17,434s
sys	0m0,950s
 
lancio con jdk 1.8
JAVA_HOME=/opt/jdk1.8.0_192
PATH="$JAVA_HOME/bin:$PATH"
export LD_LIBRARY_PATH="$JAVA_HOME/lib:$LD_LIBRARY_PATH"
bash -x ./rpt.sh 10000000 abc 500
 
+ rm -f a.out Rpt.class '*.o'
+ javac -version
javac 1.8.0_192
+ javac -O rpt.java
+ g++ --version
g++ (GCC) 8.2.1 20180831
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
+ g++ -std=c++11 -O2 rpt.cpp
+ echo 'loop: 10000000'
loop: 10000000
+ echo 'string: abc'
string: abc
+ echo 'n: 500'
n: 500
+ for x in 1 2 3
+ java Rpt 10000000 abc 500
 
real	0m31,166s
user	0m29,713s
sys	0m0,547s
+ ./a.out 10000000 abc 500
 
real	0m18,814s
user	0m17,578s
sys	0m0,750s
+ for x in 1 2 3
+ java Rpt 10000000 abc 500
 
real	0m31,175s
user	0m30,038s
sys	0m0,251s
+ ./a.out 10000000 abc 500
 
real	0m18,847s
user	0m18,228s
sys	0m0,006s
+ for x in 1 2 3
+ java Rpt 10000000 abc 500
 
real	0m31,213s
user	0m29,477s
sys	0m0,742s
+ ./a.out 10000000 abc 500
 
real	0m18,894s
user	0m18,424s
sys	0m0,037s
 
 
lancio con jdk11:
JAVA_HOME=/opt//opt/jdk-11.0.1
PATH="$JAVA_HOME/bin:$PATH"
export LD_LIBRARY_PATH="$JAVA_HOME/lib:$LD_LIBRARY_PATH"
bash -x ./rpt.sh 10000000 abc 500
+ rm -f a.out Rpt.class '*.o'
+ javac -version
javac 11.0.1
+ javac -O rpt.java
+ g++ --version
g++ (GCC) 8.2.1 20180831
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
+ g++ -std=c++11 -O2 rpt.cpp
+ echo 'loop: 10000000'
loop: 10000000
+ echo 'string: abc'
string: abc
+ echo 'n: 500'
n: 500
+ for x in 1 2 3
+ java Rpt 10000000 abc 500
 
real	0m34,590s
user	0m32,946s
sys	0m0,451s
+ ./a.out 10000000 abc 500
 
real	0m18,827s
user	0m18,259s
sys	0m0,187s
+ for x in 1 2 3
+ java Rpt 10000000 abc 500
 
real	0m34,529s
user	0m32,673s
sys	0m0,889s
+ ./a.out 10000000 abc 500
 
real	0m18,822s
user	0m18,361s
sys	0m0,020s
+ for x in 1 2 3
+ java Rpt 10000000 abc 500
 
real	0m34,577s
user	0m33,344s
sys	0m0,119s
+ ./a.out 10000000 abc 500
 
real	0m18,824s
user	0m17,641s
sys	0m0,748s
 
 
 
 


[CUT]
 
 
errata corrige:
JAVA_HOME=/opt//opt/jdk-11.0.1
 
va messo come:
JAVA_HOME=/opt/jdk-11.0.1
 
 

 sono accettate critiche, purche costruttive
 
https://www.youtube.com/watch?v=Z22HIYneuv8
 
 

 Viste le lamentele della banda java,
 
rotfl, ancora?
 
questa volta però facciamo che le chiacchiere stanno a zero. qui c'è la 
registrazione del mio test (occhio nella registrazione gli idle sono 
segati a 2.5 secondi):
 
https://asciinema.org/a/oqxJc9NupTE0KNEZkzowiBNdg
 
 
game, set, match. non c'è più nulla a cui attaccarsi, io direi di 
chiuderla qui, te che dici? 

Il 01/12/18 14:53, rootkit ha scritto:

La tua macchina quanti core ha ?
 


un comunissimo i3 con 4 core.

Il 01/12/18 14:53, rootkit ha scritto:

Non proprio,alcune considerazioni vanno fatte
 
HW reale,cpu a 4 core,g++ un po vecchiotto (4.8) cosi ho dovuto 
modificare la conversione da char* ed ho usato wchar_t per comodita
 
 
  java Rpt 10000000 abc 500
 
real	0m35.679s
user	0m35.804s
sys	0m0.160s
+ ./a.out 10000000 abc 500
 
real	0m41.990s
user	0m41.984s
sys	0m0.000s
+ for x in 1 2 3
 
La spiegazione,secondo me sono i core della cpu
la jvm riesce a sfruttarli,c++ non lo fa per default.
 
 
 
 

 chiuderla qui, te che dici?
 
Aspe`, aspe`, pure io!
 
https://asciinema.org/a/GrY7924P1X35EXFoPT883p9v0
 

 la jvm riesce a sfruttarli,c++ non lo fa per default.
 
LOL :)
 

Il 01/12/18 16:31, enoquick ha scritto:

Rettifico,non sono i core:
Hw reale 4core jdk1.8 si ha:
real    0m31,166s
user    0m29,713s
sys    0m0,547s
 
su macchina virtuale jdk1.8
  java Rpt 10000000 abc 500
 
real    0m36,018s
user    0m34,084s
sys    0m0,901s
 
La differenza sta nell'uso della macchina reale vs macchina virtuale
 
Purtroppo da me il compilatore g++ e' vecchiotto sull'hw reale
quindi non posso fare test attendibili

 quindi non posso fare test attendibili
 
Madonna che peccato!
 

Il 01/12/18 17:15, 4ndre4 ha scritto:

Non preoccuparti, ho il  laptop con cpu a 4 core
Quello su cui ho provato e' il desktop che per ragioni mie non voglio 
aggiornare,almeno per il momento
 
 

 Non preoccuparti, ho il  laptop con cpu a 4 core
 
E quindi? Deduzione dai tuoi testarelli? Adesso ammetterai che avevi torto o ti incaponirai con la banda Java che ti vuole morto?
 
 

 
 
Faccio un test con lo stesso OS ma prima su macchina virtuale cpu 1 core 
poi sulla stessa macchina ma hw reale,cpu 4 core
Stesso OS,stessa jvm,stessa versione di g++
 
 

 Faccio un test[...]
 
bla bla bla bla bla bla. 

 jvm,stessa versione di g++
 
tutto molto interessante.

Il 01/12/18 18:47, 4ndre4 ha scritto:

fatti non parole
host: macchina laptop con cpu amd 4 core 1 thread per core
VM:  ubuntu18.04 e manjaro 18 jdk 1.8 g++ 8.2.x con 1core e 4core
 
ubuntu18.04 1core    ubuntu18.04 4core   man18 1core  man18 4core
 
java
real 1m18.646s    real 1m5.607s     real 0m59,931s  real 1m14,907s
user 1m0.388s     user 1m6.026s     user 0m58,469s  user 1m14,995s
sys 0m0.505s         sys 0m0.393s     sys 0m0,393s   sys 0m0,839s
 
real 0m58.054s    real 1m7.273s     real 1m12,395s  real 1m16,729s
user 0m57.422s    user 1m7.699s     user 1m10,821s  user 1m16,933s
sys 0m0.303s         sys 0m0.415s     sys 0m0,328s   sys 0m0,725s
 
 
real 1m6.987s     real 1m7.664s     real 1m2,248s   real 1m17,376s
user 1m6.308s     user 1m8.100s     user 1m0,719s   user 1m17,535s
sys 0m0.303s       sys 0m0.409s      sys 0m0,410s  sys 0m0,722s
 
c++
real 0m55.095s    real 1m25.990s   real 1m1,423s   real 1m8,591s
user 0m54.843s    user 1m26.026s   user 1m0,857s   user 1m8,064s
sys 0m0.008s       sys 0m0.006s     sys 0m0,010s     sys 0m0,519s
 
real 1m15.136s    real 1m16.471s    real 1m5,158s   real 1m8,668s
user 1m10.254s    user 1m16.484s    user 1m4,635s   user 1m8,062s
sys 0m0.232s       sys 0m0.010s    sys 0m0,004s   sys 0m0,597s
 
real 1m9.544s     real 1m24.226s    real 0m53,627s  real 1m10,162s
user 1m9.197s     user 1m24.236s    user 0m53,211s  user 1m10,127s
sys 0m0.012s       sys 0m0.010s     sys 0m0,000s    sys 0m0,023s

 fatti non parole
 
Appunto: 68.65141667 secondi di media per Java, 69.50758333 secondi di media per C++. Ti sei smentito da solo. 
 
I fatti ti sono stati postati da almeno due persone in questo thread. Fatti che ovviamente ignori perche` ti fa comodo. La verita` e` che tu non vedi perche` non vuoi vedere.
 
Ti riposto qualche chicca che ho postato qui dentro e che hai volutamente ignorato:
 
"According to the results the most effective programming language in parallel 
programming is C with the OpenMP API and Java with the fork/join method. C 
and Java gave the fastest execution time of all languages and handled granularity in a very efficient way without wasting execution time or overall speed up, especially Java that could handle very small granularity for each task and thread." 
http://kth.diva-portal.org/smash/get/diva2:648395/FULLTEXT01.pdf
 
 
Poi, da:
http://scribblethink.org/Computer/javaCbenchmark.html
 
 
"Five composite benchmarks listed below show that modern Java has acceptable performance, being nearly equal to (and in many cases faster than) C/C++ across a number of benchmarks." 
 
1. "On Intel Pentium hardware, especially with Linux, the performance gap is small enough to be of little or no concern to programmers." 
 
2. "Java is slightly faster than C on this benchmark. Mflops (higher is better)" 
 
[...] 
 
4. "java is faster than C the majority of the tests, by a factor of more than 2 in some cases..." 
 
5. "Java is competitive with (actually slighty faster than) several C++ compilers including Visual C++ in the majority of the benchmarks." 
 
[...] 
 
"Conclusions: Why is "Java is Slow" so Popular? 
Java is nearly equal to (or faster than) C++ on low-level and numeric benchmarks. This should not be surprising: Java is a compiled language (albeit JIT compiled). 
Nevertheless, the idea that "java is slow" is widely believed. Why this is so is perhaps the most interesting aspect of this article." 
 
Poi, giusto per farti venire un po' d'orticaria:
 
"C++ is a badly designed and ugly language. It would be a shame 
to use it in Emacs. The reason the GCC developers wanted to use it is for destructors and generics. These aren't much use in Emacs, which has GC and in 
which data types are handled at the Lisp level." (Richard Stallman) 
 
"When the three of us [Thompson, Rob Pike, and Robert Griesemer] got started, it was pure research. The three of us got together and decided that we hated C++" (Ken Thompson) 
 
"C++ is a horrible language. It's made more horrible by the fact that a lot 
of substandard programmers use it, to the point where it's much much 
easier to generate total and utter crap with it. Quite frankly, even if 
the choice of C were to do *nothing* but keep the C++ programmers out, 
that in itself would be a huge reason to use C." (Linus Torvalds) 
 
"C++ has a lot of good features, but it has a lot of dirty corners. If you don't mind those, and you stick to stuff that can be counted well-portable, it's just fine. There are many constructions that are ambiguous, there's no way to parse them and decide what they mean, that you can't trust the compiler to do. For example, you use the "less-than" and "greater-than" signs not only to mean less-than and greater-than but also in templates. There are lots of little things like this, and many things in the implementation, that you can't be sure the compiler will do anything reasonable with." (Donald Knuth)

 fatti non parole 
 
perché non metti i numeri in un bel grafico?
così ammazzi un po' il tempo. saranno due settimane che stai a ruminare 
quelle 15 righe di codice.
 

Il 02/12/18 14:50, rootkit ha scritto:

2 settimane non su quel codice
Forse non sai che in settimana di 5 gg,come quasi tutti,si lavora
 

 gg,come quasi tutti,si lavora
 
ci mancherebbe anche che su questa stupidaggine tu ci avessi lavorato 
24/7. sto dicendo ci hai già "omaggiato" di... quattro test? cinque? ho 
perso il conto. a quest'ora anche un ritardato avrebbe intuito che non è 
riproducibile e non dimostra nulla. invece tu stai palesemente insistendo 
finché i numeri non convergono dove vuoi te. e poi parli pure di metodo 
scientifico. ma veramente non ti senti neanche un po' ridicolo?

 la jvm riesce a sfruttarli,c++ non lo fa per default.
 
Continua pure con le supercazzole.
Vero che la jvm potrebbe riuscire a sfruttare piu' core, ma solo nel 
caso debba eseguire piu' thread concorrenti. Il programma java che hai 
postato, utilizza una sola thread, quella associata al metodo main.
 
Adesso tira fuori un'altra supercazzola, questa te l'ho sgamata.
 

 quindi non posso fare test attendibili
 
Ma che peccato!
Mi viene un sospetto, che i differenti hw incidano solo sulla jvm? E' 
questa l'ennesima supercazzola che stai tentando di propinarci?


Ah, ma stai usando 2 core, son capaci tutti!
(gioco d'anticipo su enoquick, non si sa mai che si riesca ad evitare 
l'ennesima supercazzola)
:-)

 Ah, ma stai usando 2 core, son capaci tutti!
 
Si`, e se ne usassi di 16, di core, direbbe che non l'ho fatto saltellando su una gamba sola :)

 caso debba eseguire piu' thread concorrenti.
[...]
 
Ma poi, anche se la JVM riuscisse effettivamente a sfruttare l'hardware al meglio, non sarebbe semmai un punto a favore di Java? :D

 questa l'ennesima supercazzola che stai tentando di propinarci?
 
C'e` un bel film di Toto`, `Signori si nasce`, dove lui interpreta il barone Ottone Spinelli degli Ulivi, detto Zazà, squattrinato e con un'affettata r moscia. Nel club di aristocratici della citta`, entra nella stanza dove si gioca a Baccarat, grida "Banco!" e quando perde gli chiedono di pagare. Lui per tutta risposta fa: "Ma io schezzzavo!!", e quando gli chiedono "Barone, e se vinceva?", e lui "e me li pvendevo! Che so' scemo?".
 
Enoquick grida "banco!", perde, gli chiedi di pagare, ma poi ti risponde "eh, ma io schezzzavo, il mio g++ e` vecchiotto, test attendibili non posso farne...". Pero` il test lo ha fatto comunque.
 

 C'e` un bel film di Toto`, `Signori si nasce`, 
 
 
E io, modestamente, .....
 
 


Che funziona anche con 'cretini si nasce', o no?

 Che funziona anche con 'cretini si nasce', o no?
 
Nel suo caso, direi proprio di si`.
 

Il 03/12/18 01:06, rootkit ha scritto:

Io non sto insistendo , sto facendo altro
Ti risulta che abbia modificato il source C++ per farlo andare piu veloce ?
 


Aaaaah, ecco! In effetti stavi facendo altro, ovvero stavi cercando un 
capro espiatorio:
1) il cpu multi core, poi ti sei accorto di aver detto una stupidaggine.
2) il compilatore vecchio, ma ti hanno sgamato col filmatino dove si 
vede il compilatore nuovo
Ora dichiari che non stai insistendo, quindi implicitamente ammetti che 
non e' vero che il C++ vada piu' forte del Java in qualsiasi condizione.
Era Ora!
 

 
 
 
Non e' ancora detto
Magari ho tralasciato qualcosa,ma non me ne sto occupando adesso
 

 Non e' ancora detto
 
Che cosa li proponi a fare i tuoi esperimenti, se non sei pronto ad accettare confutazioni? Parli di voler ricevere critiche costruttive, e quando ti vengono portate non solo le critiche sul metodo, ma i numeri, rispondi con un "non e` ancora detto!".
Lo vedi che sei un cretino che si merita solo insulti?
 
 
 
 
 


Permettimi, andrea, che mi attacchi a te, in quanto autore dell'ultimo post.
In realtà c'è una cosa che mi assilla (si, come no): tra questo e l'altro thread, oltre 300 post di discussione, e dopo tutta 'sta marea di bit scambiati, mi domando: che senso ha una discussione del genere?
Cioè: ha senso, fine anno 2018, pensare più di un nanosecondo a quanto in prestazioni di concatenazione stringhe sia più efficiente un linguaggio rispetto a un altro?
 
-- 
Ciao!
Luca


Permetti che ti esponga il mio piccolo contributo.
Non ha senso, sono d'accordo.
Il fatto e' che l'OP sostiene che le performance di un linguaggio 
rispetto ad un altro, si misurino proprio concatenando delle stringhe. 
La qual cosa secondo il mio modesto parere e' un'idiozia in termini. Si 
aggiunga il fatto che i risultati postati dall'OP si sono peraltro 
dimostrati inconcludenti/sbagliati/falsi.
A questo punto cosa si fa? Gliela si da vinta? E' dura da ingugnare.


Devo dire che hai un particolare talento per entrare nelle discussioni senza capirci una sega :)
 
Il che ci puo' stare visto che dovresti leggerti centinaia di messaggi, nel dubbio pero' fossi in te eviterei.

Il 05/12/18 05:18, Dr.UgoGagliardelli ha scritto:

Le performance si misurano concatenando le stringhe
Ma ho mai affermato una idiozia del genere  ?
La concatenazione di stringhe e' solo un granello rispetto a tutti i 
punti atti a misurare le performance.
 

 A questo punto cosa si fa? Gliela si da vinta? E' dura da ingugnare.
 
Ti dirò, Ugo, io penso che la cosa non valga il mio tempo. Intendo: se uno ama sparare inutilia in un newsgroup, esattamente perché io dovrei preoccuparmici?
 
-- 
Ciao!
Luca
 
 

 Devo dire che hai un particolare talento per entrare nelle discussioni senza capirci una sega :)
 
Mica vero. Perché? perché - e pensavo fosse evidente - non ho alcuna intenzione di entrarci, nella discussione. 
Sinceramente, tu la trovi interessante? Io mi sono annoiato dopo 10 post.
 
-- 
Ciao!
Luca


perche' sembri entrato per fare da paciere e sentenziare che la discussione non sa da fare, in stile zio luca as usual :) 
 
Per quanto riguarda l'interessante, dipende: nulla di quanto scritto da enoquick puo' essere interessante, visto il livello terra terra. Alcuni reply contenevano qualcosa di interessante, invece.
 
In generale pensavo c++ avesse un vantaggio almeno in mini applicazioni di questo tipo, e non sembra piu' vero. Ho rimediato un consiglio bibliografico da 4ndre4, riso a crepapelle sui merdoni di eno. Forse altro, ma non ricordo.
 
Ci sono thread piu' noiosi.

 
E ci arrivi solo adesso? Tutto questo era quindi una volgare trollata?

 Cioè: ha senso, fine anno 2018, pensare più di un nanosecondo a quanto in prestazioni di concatenazione stringhe sia più efficiente un linguaggio rispetto a un altro?
 
E` quello che si cerca di far capire a questa persona, da oltre 300 post a 'sta parte.

 Ma ho mai affermato una idiozia del genere  ?
 
Tu hai intitolato piu` post con "Java vs. C++ - concatenazione stringhe" e hai preteso di misurare le performance dei due linguaggi facendo esattamente quello. Sono gli altri che hanno cercato di convincerti che e` un'idiozia.

 modo,
 
...e, importante, nonostante gli altrui e il suo stesso benchmark gli diano torto.
 
 

 Ti dirò, Ugo, io penso che la cosa non valga il mio tempo. Intendo: se uno ama sparare inutilia in un newsgroup, esattamente perché io dovrei preoccuparmici?
 
E quindi cosa ci stai a fare qua?

 Sinceramente, tu la trovi interessante? Io mi sono annoiato dopo 10 post.
 
Detto con tutto l'affetto: ma che cazzo voi? C'hai 'sto vizio di intrufolarti nelle discussioni, fosse anche le piu` noiose del mondo, pontificare, dare consigli su cosa fare e non fare. Ma ignora il thread e nun rompe li cojoni!

Il 05/12/18 12:00, Dr.UgoGagliardelli ha scritto:

Non ci arrivo solo adesso
Lo scopo dei benchmark che mi ero prefisso era di testare parti come 
concatenazione stringhe,calcolo numerico,I/O,threads ed altro
 
 
Sei tu che ti sei inventato che il sottoscritto crede che basta una 
concatenazione stringhe per misurare le performance.
Come ho scritto prima,non ho mai affermato cose del genere
 
La concatenazione stringhe non e' un incapponimento mio
ma il semplice risultato di osservazioni fatte da te e da altri.
 

 concatenazione stringhe per misurare le performance.
 
Con la "concatenazione di stringhe" ti e` andata male. Avanti col prossimo.

 
 
Male ?
Non direi
Si sono visti alcuni aspetti di c++ e java
Magari e' stato pure utile a qualcuno

Il 05/12/18 12:33, 4ndre4 ha scritto:

Mico potevo fare un post su 'tutti i benchmark java vs c++"
Il titolo e' solo quello che c'e  scritto, poi se che qualcuno ha inteso 
altro sono pensieri suoi,non miei.
E non ce scritto 'la concatenazione stringhe e' la misurazione delle 
performance tra un linguaggio ed un altro'
 
 

Il 05/12/18 07:16, 
menegot...@gmail.com
 ha scritto:

Va bene,se sei interessato entra pure
Se non lo sei,nessuno ti obbliga a postare
 

 perche' sembri entrato per fare da paciere e sentenziare che la discussione non sa da fare, in stile zio luca as usual :) 
 
Allora, permettimi un po' di
 
<mode_rompicoglioni>
"s'ha", non "sa"
</mode_rompicoglioni>
 
Al di la del fatto che io SONO lo zio Luca, e me ne vanto, non confondere i toni pacati con la volontà di fare da paciere. E' solo che non mi piace berciare, tutto qui.
 
E' che mi sono domandato cosa abbia spinto a tutto 'sto popò di thread, e l'ho fatto sulla scorta del fatto che io, armato di assai poca pazienza, tendo a lasciar perdere MOLTO prima. 
 
-- 
Ciao!
Luca
 
 

 E` quello che si cerca di far capire a questa persona, da oltre 300 post a 'sta parte.
 
Che ti devo dire, evidentemente avete molta più pazienza di quanta ne sia rimasta a me.

 Magari e' stato pure utile a qualcuno
 
LOL :) Adesso la butti in caciara sul didattico?

 Mico potevo fare un post su 'tutti i benchmark java vs c++"
 
Sei veramente un idiota.

 di concatenazione stringhe sia più efficiente un linguaggio rispetto a un altro?
 
concatenazione di stringhe assolutamente il nulla. Il problema dell'efficienza pero' e' molto attuale anche nel 2018, conosco gente che aspetta mesi per il risultato di computazioni (specie per simulazioni,molecular dynamics, etc). E anche io ho il mio bell'aspettare, specialmente con le analisi di immagini 4D a risoluzione quasi-atomica, che in media pesano decine di gigabytes l'una. Quindi come argomento sarebbe decisamente interessante, soprattutto in termini di parallelizzazione, anche se c'e' poco da pretendere da un NG infestato da troll e mentecatti vari.
 
In atto pratico, la differenza sostanziale che vedo in termini di esecuzione per lo stesso algoritmo e' tra computazioni su CPU e computazioni su GPU, piu' che tra linguaggio e linguaggio.

 
 
 
Ma figurati

 una idiozia del genere  ?
 
si, per la precisione il 19 novembre alle 3 e 25 ora italiana quando hai 
presentato il test di concatenazione stringhe. 
 
<cite>
Ma la domanda che rimane e' "quanto ottimizza?" e poi "le prestazioni di
java sono effettivamente come o meglio di un C++? "
</cite>
 

Il 05/12/18 14:58, rootkit ha scritto:

Ma ne sei proprio sicuro sicuro sicuro ?
 
 
Enoquick 19 novembre:
<<<<<<<
Questi test cercheranno di dare una risposta all'ultima domanda.
Per chi volesse avere il tar.gz del test mi scriva via email
Per i test uso una ubuntu 18.04 64bit dove ho installato l'ultima 
versione della jdk disponibile (11.0.1) mentre per il g++ uso gia quello 
di default installato (g++ 7.3.0)
Per g++ non uso le ottimizzazioni per il mio specifico processore ma una 
semplice ottimizzazione generica -O2,cosa che invece la jvm potrebbe fare.
Per il primo test si passa alla concatenazione di stringhe usando una 
semplice funzione rpt.
<<<<
 
 
La frase 'per il primo test' ti dice niente ?
 
 
 
 
 
 
 

Il 05/12/18 15:17, enoquick ha scritto:

Ed aggiungo:
la frase "Questi test" quindi plurale ti dice niente ?
 

 La frase 'per il primo test' ti dice niente ?
 
sì, che sei un paraculo da due soldi.
 

 
 
Ambiguos per gli utenti,il compilatore sa sempre cosa fare !! (al peggio 
se la cava con un syntax od un ambiguos error)
Occorre conoscere bene come si comporta il compilatore
Ma comunque queste ambiguita (per gli utenti) sono state mitigate da c++11
 


ma nessuno si sta "preoccupando". è una discussione futile e non è che 
non ne siamo consapevoli, la prendiamo per quello che è, senza 
sacrificare niente che abbia più valore nella vita come immagino abbia 
fatto anche te con questi interventi.

 
 
Veramente le osservazioni riguardavano altro.

 Veramente le osservazioni riguardavano altro.
 
Te li rinfresco, per quanto me li ricordi:
- char in c++ e' un byte, in Java 2, quindi un oggetto string in c++ non 
e' direttamente confrontabile con un oggetto String in c++.
- la classe String in Java e' immutabile, quindi l'operatore + o += crea 
una nuova istanza di String, non e' cosi' in C++
- StringBuilder e String implementano entrambi CharSequence ma il primo, 
non essendo immutabile, assomiglia di piu' a string di c++ a meno della 
dimensione di char
- in Java esistono contenitori di byte (come ByteBuffer) piu' 
assimilabili a string di c++
- lanciare un programma Java equivale a istanziare una nuova jvm che poi 
esegue il programma Java, non e' il caso di un programma c++
- il JIT di Java e' configurabile ed e' capace di produrre 
automaticamente istruzioni inline, in c++ glielo devi dire
- l'ottimizzazione di un programma Java dipende sostanzialmente dal 
programmatore, se e' bravo il programma va piu' forte, quindi per 
confrontare due programmi scritti in Java e c++, e' essenziale che il 
programmatore sia bravo in tutti e due i linguaggi
- per ottenere dei benchmark affidabili bisogna essere capaci
 
 
E si,queste frasi le ha scritte tuo cuggino che sia chiama come te
 
 

 
 
esticazzi.

 esticazzi.
 
Un altro che non vale il mio tempo.

 Ambiguos per gli utenti,il compilatore sa sempre cosa fare !!
 
LOL :) Il codice lo scrivono gli uomini, non il compilatore. Come al solito, non hai capito niente.
 

 E' stata presa in due la decisione.
 
Ma quale decisione... ma smettila...

 - per ottenere dei benchmark affidabili bisogna essere capaci
 
Appunto. Tu non lo sei. 
 
 

Il 06/12/18 12:50, 4ndre4 ha scritto:

Peccato che quelle frasi non sono mie
 

 E no,i benchmark sono stati voluti da me e rootkit 
 
col cazzo.

 
 
io li ho proposti e tu hai accettato
 


col cazzo. e due.
alla terza ti mando a pigliarlo in culo e guai se fiati.

 Appunto. Tu non lo sei.
 
Anche quella frase era mia. Corollario di quelle precedenti.
 

 Anche quella frase era mia. Corollario di quelle precedenti.
 
E anche quella e` vera :)
 

 
 
Ma per quale motivo ho risposto ad uno stronzo simile neanche capace di 
tenere una discussione ma solo sparare cazzate ?

Il 07/12/18 07:31, 4ndre4 ha scritto:

So quotare ma era trabocchetto (nella mia grande mente sapevo che ci 
saresti cascato)
 
E questo indica la tua faziosita alla ennesima potenza
Se scrivo io sono cazzate,ma se le scrive qualcun altro con cui vai 
d'accordo allora va bene
Meno male che di professione non fai il giudice

 Ma quali fatti
 
personalmente mi pare di averti fornito la registrazione a riprova sia 
delle operazioni che dei risultati ottenuti. da parte tua invece non si 
sono visti altro che copincolla facilmente manipolabili, talvolta a forte 
dubbio taroccamento vista la enorme discordanza, guardacaso a vantaggio 
della tua tesi, rispetto alle misurazioni fatte da altri.  

 Ma quali fatti
 
Senti, idiota, se stai trollando e` un conto, se invece cerchi una discussione seria (si fa per dire), allora apri occhi e orecchie e comincia ad accettare i FATTI che ti vengono messi davanti. Ti sono state postate almeno due registrazioni di esecuzioni che ti smentiscono, e hai postato dei numeri che ti smentiscono. Se poi ti va di ficcarti due dita nelle orecchie e urlare per non sentire, allora evita proprio di rispondere. Chiuditi in un dignitoso mutismo, piuttosto che continuare a darti la zappa sui piedi.
 
Qui dentro, di ineguagliabile stronzi che sparano cazzate ce ne sono diversi, e TU sei uno di quelli.

 Se scrivo io sono cazzate
 
Esatto. Il problema e` l'intento con cui certe cose si scrivono. Se le scrivi con l'intento di giustificare il C++, si` che sono cazzate. Non ti sforzare di capire.

Il 08/12/18 02:08, rootkit ha scritto:

quali prove ?
Che una concatenazione e' piu veloce ?
 

Il 08/12/18 03:05, 4ndre4 ha scritto:

Non sei capace a tenere una discussione e ti metti a fare proseliti.
 
L'unica cosa che sai fare  e' sparare parole di dubbia provenienza su 
chi non la pensa come te.
Quindi chissa che discuto a fare con un tipo simile

 
 
Sempre la solita solfa,niente di nuovo sotto il sole

 Non sei capace a tenere una discussione e ti metti a fare proseliti.
 
Ma ti leggi? Non sai neanche scrivere in italiano. Quali proseliti? Smettila di scrivere minchiate. Guarda che qui, di tutto si tratta, meno che pensarla diversamente. Ti sono stati messi davanti dei fatti: accettali e vivi sereno.

 Sempre la solita solfa,niente di nuovo sotto il sole
 
Fino a che scriverai sempre le solite puttanate, riceverai sempre le solite risposte. 
 


ma... a casa tua cosa dicono di questo fatto che non capisci 
sistematicamente un cazzo?

Il 06/12/18 16:14, rootkit ha scritto:

Fai tu
Non ho bisogno del tuo appoggio
 

 Non ho bisogno del tuo appoggio
 
Dialogare con il Gatto del Cheshire ha piu` senso che dialogare con te. Tu affermi di aver preso una decisione in accordo con un'altra persona. Cosa non vera. Quella persona ribatte che non e` vero e tu, per tutta risposta, anziche` riconoscere che ti sei sbagliato e hai detto una minchiata, tiri fuori un "fai tu!". Sei viscido piu` di una saponetta bagnata.
 

Il 09/12/18 05:19, 4ndre4 ha scritto:

Che sia vera o non vera e' da appurare
Occorre cercare i vecchi post,cosa che non ho voglia di fare
e sinceramente faccia come vuole lui.
Come ho gia risposto non ho bisogno dell'appoggio di qualcuno,posso 
tranquillamente farne a meno
 

 Occorre cercare i vecchi post,cosa che non ho voglia di fare
 
Vile bugiardo.
 

 tranquillamente farne a meno
 
per le cretinate che scrivi ci mancherebbe avessi bisogno di aiuto.
 
 

 saresti cascato)
 
Anche tu sei caduto in un trabocchetto:
 
non sei una grande mente
piuttosto un gran demente
 
vedi com'è facile ?
 
 
-- 
The three most dangerous things in the world are a programmer with a 
soldering iron, a hardware type with a program patch and a user with an 
idea.