Microsoft Windows XP 64 bit: ormai manca poco!
Negli ultimi giorni vari rumors segnalano come data di rilascio per il nuovo windows a 64bit, il 29 Aprile. Per ingannare l'attesa Microsoft ha distribuito una versione trial che, stando a vari commenti raccolti in rete, appare abbastanza matura e non ha creato particolari problemi nel riconoscimento
di Fabio Boneschi pubblicata il 28 Gennaio 2005, alle 17:23 nel canale ProgrammiMicrosoftWindows









ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
WINDTRE, le offerte di fine luglio: 5G Full Speed da 5,99 euro al mese
Due scrivanie angolari gaming a prezzi bassissimi: una a 102,88€ solo per Prime e l'altra a 99,99€ con prese USB e layout reversibile
Telecamere e intelligenza artificiale sui camion dei rifiuti: come alcune città USA controllano le case
L'ASUS Zenbook di cui tutti parlano torna in offerta: OLED 3K da 14'', Core Ultra 7, 16GB e 1TB a 999€ dopo uno sconto di 500€
Helios, la piattaforma di Schneider Electric e AMD per le AI Factory del futuro
Multiverse Computing raccoglie 500 milioni di euro per l'IA europea che può girare ovunque, anche su uno smartphone
Videogiochi, social e azzardo: un giovane su sei tra 11 e 17 anni ha un comportamento a rischio
Tre astronauti rientrano dalla ISS: la Soyuz MS-28 tocca terra in Kazakistan
Kimi K3 ha trovato 19 zero-day in Redis in 90 minuti
Aggiungere un acceleratore IA per data center al proprio PC: si può fare e costa incredibilmente poco
Debian valuta lo stop totale ai contributi generati dall'IA
Huawei sfida il ban USA: al via la produzione propria di memorie HBM per l'IA
QNAP lancia i nuovi NAS TS-262A e TS-462A per ambienti domestici e piccoli uffici
E4 Computer Engineering e EuroHPC JU uniscono le forze su MeluXina-AI, l'HPC per l'IA europea









211 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoScusate ma si può scaricare oppure no?
Tu aiuti sicuramente a distendere la discussione
Ma la discussione non si sarebbe neppure scaldata se la nostra amica ammettesse ogni tanto qualche suo errore, soprattutto quando sono cosi' goffi, invece di limitarsi ad arrampicarsi sugli specchi e insultare l'interlocutore che glieli fa notare.
fek: rileggiti per bene quello che è stato scritto... Non vi siete capiti...
Sta dicendo la tua stessa cosa...cioè che di per se un istruction set a 64 bit non porta reali vantaggi... Il codice che tu hai riportato sembrava fatto per fargli capire che in quella situazione (in effetti non hai specificato niente dell'ambiente esterno) il codice a 64 bit era intrinsecamente più lento... Prendendola in questo modo lei ti ha fatto vedere che proprio quel codice, nella situazione migliore (inner loop), è estremamento più veloce del corrispondente a 32 bit...
Quando gli hai chiesto come si fa il profiling, lei ha capito come si fa "in questo caso" il profiling e ti ha fatto il discorso del RDTSC...tu hai capito che facesse il profiling solo in quel modo e ti sei inalberato dicendo che non era capace di fare il profiling... Siccome repne scasb è capacissima di farlo...si è ovviamente incavolata...
Quindi smettetela e fate la pace
Riguardo al discorso del memory bound...non sempre si è memory bound...magari nel tu lavoro la quantità di accessi e la variabilità di questi accessi è tale da renderti sempre memory bound... In molti altri campi questo non succede...
non penso....come tutti i SO microsoft nn si puo scaricare dal sito ufficiale
Ho una voglia matta di un sistema a 64 bit...non sapete quante prove avrei voglia di farci
Come ha perfettamente detto Cionci, le cose stanno un po' diversamente in quanto sei stato tu (Fek) a portare in primo luogo quell'esempio (per giunta con errori vari riconosciuti ma questo e' un altro discorso) ma manco a farlo apposta era proprio uno di quei rari casi in cui a 64bit si va piu' veloci
Inoltre non credo sia stato il massimo dell'obiettivita' il tuo atteggiamento un po', come dire, sopra le righe nei confronti di repne, arrivando anche a frecciate di dubbio gusto e facendo l'offeso.
Se hai beccato qualcuno che puo' starti dietro nel tuo campo qui sul forum, non averne a male, nessuno ti sta facendo scendere dal piedistallo e la stima di tutti resta immutata, anche se da parte mia hai perso qualche punto per via di certo sarcasmo gratuito ... =)
Cio' non toglie comunque che in 'generale' hai ragione tu sul discorso dei 'presunti' vantaggi (come gia' confermato anche da repne, cdmauro, banus e tutti gli altri) dei 64bit.
Gabido: ma perche' scherzare proprio in questo thread e soprattutto, se non ne puoi fare a meno, in maniera cosi' infantile ?
Come ha perfettamente detto Cionci, le cose stanno un po' diversamente in quanto sei stato tu (Fek) a portare in primo luogo quell'esempio (per giunta con errori vari riconosciuti ma questo e' un altro discorso) ma manco a farlo apposta era proprio uno di quei rari casi in cui a 64bit si va piu' veloci
Non è proprio così...quella routine va sicuramente più veloce a 64 bit solamente nel caso in cui tutti i dati a cui accede siano in cache...ed è per quello che l'aveva introdotta fek...
Diciamo che fek, conscio delle minori operazioni necessarie, voleva mettere in evidenza il fatto che nonostante siano necessarie meno istruzioni la velocità di esecuzione di quella routine dipende dal contesto in cui essa viene richiamata...
2) i dati sono anche i due operandi, non per altro nella versione C li ho passati di proposito come puntatori a interi lunghi, per risaltare il fatto che quei dati provenivano dalla memoria, potenzialmente in due pagine totalmente separate, e ancora potenzialmente non in cache
Rispondo solamente a questa parte, perché per il resto concordo o ne abbiamo già parlato. Citando i dati passati come puntatori, mi è sorto un dubbio: sono andato a controllare e probabilmente la routine che hai riportato non era corretta. La riporto integralmente:
[CODE]void __fastcall func_64(
__int64* res,
__int64 arg1,
__int64 arg2)
{
__int64 res1 = *arg1 + *arg2;
__int64 res2 = *arg1 - *arg2;
*res = res1 * res2;
}[/CODE]
Magari sbaglio, ma usando i puntatori forse doveva essere scritta così:
[CODE]void __fastcall func_64(
__int64* res,
__int64 *arg1,
__int64 *arg2)
{
__int64 res1 = *arg1 + *arg2;
__int64 res2 = *arg1 - *arg2;
*res = res1 * res2;
}[/CODE]
In effetti usando i puntatori si verifica quel che hai scritto: è possibile che ciascun accesso in memoria possa provocare un page fault (tre, se consideriamo anche quello del risultato, che è anch'esso un puntatore).
Quella routine poteva anche essere scritta così (l'ho scritta così perché il mio stile è diverso dal tuo):
[CODE]__int64 __fastcall func_64(__int64 arg1, __int64 arg2) {
return (arg1 + arg2) * (arg1 - arg2);
}[/CODE]
E' chiaro che il problema dell'accesso ai due argomenti (e i conseguenti possibili page fault) è sempre lo stesso: è soltanto anticipato all'inizio della chiamata alla funzione (e posticipato per la scrittura del risultato tornato).
C'è da dire, però, che le routine, sebbene facciano lo stesso lavoro, non sono affatto "identiche": la prima viene "digerita meglio" dai sistemi a 32 bit, perché vengono passati 3 puntatori a 32 bit, mentre nei sistemi a 64 bit un puntatore è a 64 bit (con le conseguenze di cui abbiamo parlato); la seconda è "digerita meglio" dai sistemi a 64 bit, perché si evita il passaggio di un puntatore, ma soprattutto il dato sta interamente in un registro.
Qui nasce anche un problema "etico" per un programmatore: quale forma preferire?
Più in generale: per dati che sono contenuti in 64 bit, è meglio passarne direttamente il valore o il puntatore?
Qui nasce anche un problema "etico" per un programmatore: quale forma preferire?
Più in generale: per dati che sono contenuti in 64 bit, è meglio passarne direttamente il valore o il puntatore?
Nella prima versione del codice che hai riportato il passaggio e' per valore ma gli argomenti sono deferenziati come fossero puntatori, quella versione neppure dovrebbe compilare.
Mi sembra strano che l'abbia postata in quel modo, perche' ho postato anche il disassemblato del debugger e devo averla compilata
edit: confermo, l'ho postata senza l'asterisco sugli argomenti, devo aver fatto casino con il copy&paste per la seconda volta... per fortuna ho i correttori di bozze che si leggono tutto quello che scrivo in cerca di errori; vi posso assumere mentre programmo?
Comunque non sono gli errori (chiaramente accidentali) l'oggetto del mio messaggio né lo è l'accesso in memoria e il relativo contesto trattato: l'interrogativo lascia spazio per altre discussioni rispetto a quelle che abbiamo già fatto...
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".