Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
ASUS Expertbook PM3: il notebook robusto per le aziende
ASUS Expertbook PM3: il notebook robusto per le aziende
Pensato per le necessità del pubblico d'azienda, ASUS Expertbook PM3 abbina uno chassis particolrmente robusto ad un pannello da 16 pollici di diagonale che avantaggia la produttività personale. Sotto la scocca troviamo un processore AMD Ryzen AI 7 350, che grazie alla certificazione Copilot+ PC permette di sfruttare al meglio l'accelerazione degli ambiti di intelligenza artificiale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-11-2008, 11:40   #1
Reflex86
Member
 
L'Avatar di Reflex86
 
Iscritto dal: Aug 2003
Città: Roma
Messaggi: 88
[Java] creare lista JComboBox piu velocemente

Dunque, il problema è banale ma non riesco a risolverlo

Praticamente mi occorre creare un JComboBox che permetta di scegliere un valore da 1 a 9999, e questo oggetto va a finire in una maschera che viene replicata per 12 volte.

Codice:
  String[] combolist = new String[10000];
   	for (int i=1; i<10000; i++)
    	combolist[i] = ""+i;
    final JComboBox combo = new JComboBox(combolist);
Ora il problema è che ci mette una eternità a caricare il programma visto che deve rifare la medesima cosa per 12 volte, esiste un modo piu veloce per fare il tutto? Spulciando tra i metodi non ho trovato nulla che potesse fare al caso mio

Grazie
__________________
Config: Asus P5QL-E, Core2Duo E8400 3,0GHz, POV GeForce 9800GTX+, HD Seagate Barracuda 500GB, 4GB Kingston DDR800
Reflex86 è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 13:30   #2
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
Ma ripeti 12 volte il codice che hai scritto per caso?
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 13:49   #3
Reflex86
Member
 
L'Avatar di Reflex86
 
Iscritto dal: Aug 2003
Città: Roma
Messaggi: 88
Ti spiego, praticamente è una interfaccia grafica che deve gestire 12 oggetti separati. Quindi quel codice che ho postato sopra è nel costruttore di questa classe e quando creo l'interfaccia, vengono aggiunti 12 oggetti in un tabbedpane che racchiude tutto

ma ci mette veramente troppo, se tolgo quel ciclo impiega qualcosa come 15 secondi in meno ad avviarsi (su 25 totali).. lo so che il tempo è relativo, però è buon indice che qualcosa non quadra
__________________
Config: Asus P5QL-E, Core2Duo E8400 3,0GHz, POV GeForce 9800GTX+, HD Seagate Barracuda 500GB, 4GB Kingston DDR800
Reflex86 è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2008, 16:11   #4
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
15 secondi per eseguire quel ciclo???
Sicuro che non siano millisecondi??

Cmq posta anche il resto del codice così vediamo dove stà l'intoppo che ti rallenta così tanto anche perchè 25 secondi per far partire un'applicazione mi sembrano un attimo tanti
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2008, 11:45   #5
Reflex86
Member
 
L'Avatar di Reflex86
 
Iscritto dal: Aug 2003
Città: Roma
Messaggi: 88
Codice:
public class Program {
public program(){

...

final JComboBox nominalflow_combo = new JComboBox(LIST);

...

}
   private static final String LIST[];
   static{
      LIST = new String[9999];
      for (int i=0; i<9999; i++)
    	    LIST[i] = ""+(i+1);
   }
}
Genero quindi un combobox utilizzando un array statico.

il programma principale, crea 12 istanze dell'oggetto program che va a sbattere nella interfaccia dentro un tabbedpane.

Codice:
public class main {

Program[] unit = new Program[PROGRAM_MAX]; 
	for (int i=0; i<PROGRAM_MAX; i++){
	  unit[i] = new Program();
}

JTabbedPane tabbedPane = new JTabbedPane(); 
 	for (int i=0; i<PROGRAM_MAX; i++)
		tabbedPane.addTab("Program "+(i+1), null, unit[i].getPanel(),"Program nr: "+(i+1));	

...

ora, se io al posto di new JComboBox(LIST) credo un combobox vuoto JComboBox() la differenza per caricare il programma è di ben 17 secondi (!!!) possibile che per popolare 12 box mi ci metta così tanto? Probabilmente mi sfugge qualcosa..
__________________
Config: Asus P5QL-E, Core2Duo E8400 3,0GHz, POV GeForce 9800GTX+, HD Seagate Barracuda 500GB, 4GB Kingston DDR800
Reflex86 è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2008, 12:49   #6
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Ehm, ma così, per curiosità, PROGRAM_MAX quanto vale?

Un'altra cosa.
Potresti per favore spiegare a cosa serve una ComboBox che permette all'utente di scegliere un valore compreso tra 1 e 9999?
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 05-12-2008 alle 12:51.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2008, 14:30   #7
Reflex86
Member
 
L'Avatar di Reflex86
 
Iscritto dal: Aug 2003
Città: Roma
Messaggi: 88
PROGRAM_MAX vale 12

e per la combo mi serve così perchè è più immediato selezionare in questo modo il valore, cmq non mi pare normale che ci metta cosi tanto per popolare delle liste, sbaglio?
__________________
Config: Asus P5QL-E, Core2Duo E8400 3,0GHz, POV GeForce 9800GTX+, HD Seagate Barracuda 500GB, 4GB Kingston DDR800
Reflex86 è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2008, 15:55   #8
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Reflex86 Guarda i messaggi
PROGRAM_MAX vale 12
Quindi questo ciclo istanzia 12 oggetti di tipo Program:
Codice:
public class main {

Program[] unit = new Program[PROGRAM_MAX]; 
	for (int i=0; i<PROGRAM_MAX; i++){
	  unit[i] = new Program();
}

JTabbedPane tabbedPane = new JTabbedPane(); 
 	for (int i=0; i<PROGRAM_MAX; i++)
		tabbedPane.addTab("Program "+(i+1), null, unit[i].getPanel(),"Program nr: "+(i+1));	

...
Notiamo che un oggetto Program istanzia al suo interno quasi 10.000 stringhe uniche (tutti i numeri da 0 a 9999, cioè tutte le stringhe che li rappresentano a partire dalla stringa "0" fino alla stringa "9999").
Questo di per se non sarebbe il collo di bottiglia [intendo il fatto di istanziare 10.000 stringhe].

Tu stesso hai notato in precedenza:
Quote:
...ora, se io al posto di new JComboBox(LIST) credo un combobox vuoto JComboBox() la differenza per caricare il programma è di ben 17 secondi (!!!)...
Il problema infatti è questo.
Passare come argomento al costruttore di JComboBox un array (in questo specifico caso di String) significa il processo di costruzione del Combo Box Model associato a quel JComboBox sarà un tantino pesantuccio se l'array contiene un numero notevole di items.

Prova un po' a ficcare solo 100 String nell'array LIST invece delle 10.000 attuali e dovresti notare una certa differenza di tempistica (e questo a prescindere dal fatto che così facendo istanzierai solo 100 String invece che 10.000: l'istanziazione delle 10.000 String di per se non deve essere un problema, il problema è appunto creare un Combo Model così esageratamente grande, quando mai ti è capitato di vedere ComboBox con 10.000 items??? A me MAI fin'ora)...

Sospetto che il problema sia concettuale, cioè che tu stia usando lo strumento sbagliato per raggiungere il risultato che ti serve ottenere, il che ci porta alla seconda domanda che ti ho fatto:
Quote:
Originariamente inviato da Reflex86 Guarda i messaggi
e per la combo mi serve così perchè è più immediato selezionare in questo modo il valore, cmq non mi pare normale che ci metta cosi tanto per popolare delle liste, sbaglio?
A parte il fatto che selezionare un valore da una lista di 10.000 items non mi sembra poi così "immediato" (metti che voglio l'item numero 4.789, la lista a cascata che compare sotto il ComboBox parte dal valore 1 e me ne mostra solo un tot. quanto mi tocca "scrollare" di rotellina o cliccare sulla freccetta "giù" prima di arrivare al valore che mi serve? Non faccio molto, molto prima a scrivere direttamente io il valore?) per ottenere questo scopo stai:
1- istanziando 10.000 String;
2- creando un(in realtà 12) Combo Model enorme di 10.000 items;

Non è che forse te la puoi cavare con qualche altro controllo?
Per esempio uno Spinner?

Nota: sto scrivendo di fretta.
A scanso di equivoci: chiedo scusa se i toni possono sembrare provocatori, non ho alcuna intenzione di offenderti o fare del sarcasmo, le osservazioni che ho postato le ho postate con l'intento di far cadere la tua attenzione su determinate problematiche nella speranza di stimolare da parte tua delle riflesisoni utili.
Magari avevi già pensato a tutto questo e io non ho capito bene la situazione: capita, sono nubbio

Ciao.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 05-12-2008 alle 15:58.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2008, 16:13   #9
Reflex86
Member
 
L'Avatar di Reflex86
 
Iscritto dal: Aug 2003
Città: Roma
Messaggi: 88
mmm hai perfettamente ragione, non pensavo fosse così oneroso il dover creare quei combobox comunque, ora mi studio un po' JSpinner e vedo se può fare al caso mio e come modificare il resto del codice eventualmente, ti ringrazio per la dritta

Considerando che il programma in tutto impiega qualcosa come 48 secondi a caricare mi sa che dovrò fare un bel po' di alleggerimenti Sicuramente sbaglio qualcosa a livello di gestione degli eventi, ma eventualmente aprirò un altro thread, cmq provo così e vediamo se posso limare quei 17 secondi
__________________
Config: Asus P5QL-E, Core2Duo E8400 3,0GHz, POV GeForce 9800GTX+, HD Seagate Barracuda 500GB, 4GB Kingston DDR800
Reflex86 è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2008, 16:31   #10
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Reflex86 Guarda i messaggi
...
Considerando che il programma in tutto impiega qualcosa come 48 secondi a caricare mi sa che dovrò fare un bel po' di alleggerimenti Sicuramente sbaglio qualcosa a livello di gestione degli eventi, ma eventualmente aprirò un altro thread...
Probabilmente c'è qualche altro problema.
Prova a controllare:
- i cicli;
- il codice che hai inserito nei metodi di gestione degli eventi dei vari Listener;

Se hai qualche sospetto su qualche pezzo di codice, specie per i Listener, non aprire un altro thread (nn c'è n'è veramente bisogno) ma posta qui sotto, io quando e per quello che posso ti do una mano volentieri.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
Smart #5 BRABUS segna il nuovo record di...
Incentivi auto elettriche 2025, a volte ...
Oura apre una maxi disputa sui brevetti ...
Tre gruppi criminali si uniscono e crean...
BMW iX3: la Neue Klass supera i 1.000 km...
LinusTechTips pensa che Steam Machine do...
Black Friday Amazon: avviatori auto e ac...
Warner e Udio depongono le armi: l'IA di...
Snapdragon 8 Gen 5: il nuovo processore ...
Black Friday OPPO: prezzi a picco su sma...
Arriva il nuovo Amazon Haul per il Black...
Mafia: Terra Madre: arriva il Free Ride ...
L'UE approva 70 progetti (anche in Itali...
Nuovo Cayenne Electric: è la Pors...
Adobe acquisisce Semrush per 1,9 miliard...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:25.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v