Tech iCrewPlay.comTech iCrewPlay.com
  • Scienza
  • Spazio
  • Natura
    • Cambiamenti climatici
  • Curiosità
  • Salute
  • Recensione
  • Tecnologia
    • App e software
    • Prodotti Audio
    • Domotica e IoT
    • Elettrodomestici
    • Guide
    • Hardware e periferiche
    • Notebook e PC
    • Smartphone e tablet
    • Visione Digitale
    • Wearable
    • Cronologia
    • Seguiti
    • Segui
Cerca
  • Videogiochi
  • Libri
  • Cinema
  • Anime
  • Arte
Copyright © Alpha Unity. Tutti i diritti riservati.​
Lettura: Ottimizzazione programmi: da cosa dipende a livello tecnico?
Share
Notifica
Ridimensionamento dei caratteriAa
Tech iCrewPlay.comTech iCrewPlay.com
Ridimensionamento dei caratteriAa
  • Videogiochi
  • Libri
  • Cinema
  • Anime
  • Arte
Cerca
  • Scienza
  • Spazio
  • Natura
    • Cambiamenti climatici
  • Curiosità
  • Salute
  • Recensione
  • Tecnologia
    • App e software
    • Prodotti Audio
    • Domotica e IoT
    • Elettrodomestici
    • Guide
    • Hardware e periferiche
    • Notebook e PC
    • Smartphone e tablet
    • Visione Digitale
    • Wearable
    • Cronologia
    • Seguiti
    • Segui
Seguici
  • Contatto
  • Media Kit
  • Chi siamo
  • Lavora con noi
  • Cookie Policy
  • Disclaimer
Copyright © Alpha Unity. Tutti i diritti riservati.​
App e softwareTecnologia

Ottimizzazione programmi: da cosa dipende a livello tecnico?

Andrea Tasinato 2 anni fa Commenta! 8
SHARE

Ottimizzazione, è un termine che va di moda negli ultimi anni, soprattutto nell’ambito videogiochi, ebbene ottimizzare un software, specialmente un programma di grafica o un videogioco può avere risvolti inaspettati.

Contenuti di questo articolo
Cosa si intende per ottimizzazione?PrestazioniUso delle risorseStabilitàOttimizzazione per specifiche piattaformeAlcune possibili causeBugTroppa “pesantezza a livello di memoria”Troppi poligoni o poligoni messi maleRisorse non utilizzate che in qualche modo pesano sul sistemaAltre cause non note sulla mancata ottimizzazioneConcludendo

Questo vale per ogni tipo di programma, da un semplice editor di testo, ai videogiochi, ma sono rilegati soprattutto a programmi di grafica e quest’ultimi proprio per la loro complessità.

Cosa si intende per ottimizzazione?

L’ottimizzazione di un programma si riferisce al processo di miglioramento delle prestazioni e dell’efficienza del prodotto. L’obiettivo dell’ottimizzazione è rendere il software o il videogioco più veloce, reattivo e stabile, consentendo una migliore esperienza utente.

Leggi Altro

Microsoft terminerà il supporto per le password nell’app Authenticator a partire dal 1 agosto 2025.
Prorelax Vacuum Massager Sensitive: micidiale contro la cellulite ed efficace per il lipedema
Scattered Spider prende di mira il settore aereo: l’FBI lancia l’allarme
Quantum Computing: superato un limite storico, dimostrata per la prima volta un’accelerazione esponenziale incondizionata

Essa può coinvolgere varie “aree”, il tutto per capire che è un’operazione molto più complessa di quanto credono i più.

Prestazioni

Ottimizzare le prestazioni mira a rendere il software più rapido ed efficiente. Questo può coinvolgere la riduzione dei tempi di caricamento, l’aumento del frame rate nei videogiochi, la minimizzazione dell’utilizzo di risorse come la memoria o la CPU, e l’ottimizzazione degli algoritmi per ridurre i tempi di esecuzione.

Uso delle risorse

L’ottimizzare può essere finalizzato anche a ridurre l’utilizzo di risorse come memoria, spazio su disco o larghezza di banda di rete. Ciò può essere importante per consentire al software di funzionare su dispositivi con risorse limitate, come dispositivi mobili o sistemi più vecchi.

Stabilità

L’ottimizzazione può anche riguardare la riduzione degli errori e dei bug, migliorando la stabilità complessiva del software. Ciò può includere l’individuazione e la correzione di errori di programmazione, la gestione adeguata delle eccezioni e la massimizzazione della robustezza del sistema.

Ti è mai capitato che un programma tipo Maya o Photoshop o Blender vada in crash e si spegna all’improvviso? Ecco.

Ottimizzazione per specifiche piattaforme

Spesso i videogiochi o i software devono essere ottimizzati per funzionare su piattaforme specifiche, come console di gioco o dispositivi mobili. Ciò richiede un’ottimizzazione delle risorse e delle prestazioni per adattarsi alle caratteristiche e alle limitazioni di tali piattaforme.

Ad esempio se un un programma di grafica esiste solo per il Mac sarà ottimizzato solo per quella piattaforma o comunque per i Mac che hanno determinate caratteristiche, idem un videogioco che è esclusiva PlayStation 5, dovrà girare bene esclusivamente lì.

L’ottimizzazione di un software è un processo continuo e può richiedere l’analisi delle metriche di prestazione, l’identificazione dei punti deboli e l’implementazione di miglioramenti iterativi. L’obiettivo finale è offrire agli utenti un’esperienza fluida, priva di ritardi e problemi tecnici, massimizzando al contempo l’efficienza e l’usabilità del prodotto.

Alcune possibili cause

Le cause di mancata ottimizzazione possono essere svariate: queste sono solo alcune, per fare alcuni esempi sull’ottimizzazione userò il linguaggio C come esempio.

Bug

I programmatori devono districarsi tra milioni se non miliardi di righe di codice e può essere arduo fare un debugging e una buona ottimizzazione, un esempio di bug in C su un programma che deve calcolare un’addizione.

int a,b, somma;
printf(“Inserisci primo addendo: “);
scanf(a);
printf(“Inserisci secondo addendo: “);
scanf(b);

somma = a-b;
printf(“il risultato è: “, somma);

In questo caso la variabile “somma” è a – b (a meno b) non a + b (a + b), quindi è un bug, vuoi che sia avvenuto perché il programmatore ha sbagliato, vuoi perché ha capito male, le cause possono essere molteplici.

Linguaggio naturale

Fatto sta che è facilissimo sbagliare con la tastiera di conseguenza, immagina che il programmatore non deva risolvere un meno, ma una variabile o anche 10 variabili sbagliate messe chissà dove, questo può causare non solo rallentamenti ma anche i famosi “crash di sistema”; questo vale per un videogioco, vale per un programma di grafica come anche per un sistema operativo come Windows o Linux.

Troppa “pesantezza a livello di memoria”

Userò l’algoritmo precedente per fare un esempio: si può migliorare  affinché occupi meno memoria, nel caso abbiamo un computer davvero vecchio che funziona con DOS con soli dei mega di RAM (neanche dei giga), ovvio che devo risparmiare spazio.

Nell’esempio di prima, come potrei alleggerire e dire al programma di consumare meno memoria? Facile: elimino la variabile “somma” e faccio così.

int a,b;
printf(“Inserisci primo addendo: “);
scanf(a);
printf(“Inserisci secondo addendo: “);
scanf(b);

printf(“il risultato è: “, a+b);

Eliminando una variabile ho eseguito di fatto una ottimizzazione: come? Dicendo al PC di utilizzare meno risorse in termini di RAM, processore, etc.

Ora questo è un programma molto semplice fatto in linguaggio C, come sopra moltiplica il tutto per migliaia se non milioni di righe di codicie capirai perché un programma o un videogioco può dare problemi di rallentamento.

Il fatto però è questo: con i sistemi sempre più potenti e sempre più grandi a livello di spazio, gli sviluppatori dicono “ma che vuoi che sia!” e lasciano al caso anche quello che non è utilizzato, peccato però che poi l’utente finale lo percepisca con crash e rallentamenti vari.

Troppi poligoni o poligoni messi male

Questo dell’ottimizzazione riguarda più i programma di grafica e i videogiochi, ma anche programmi che non c’entrano con la grafica in sé e ne fanno largo uso (vedi applicazioni come Earthquake 3D per i terremoti per capirci).

Qui sotto un piccolo esempio in Maya per capire i problemi grafici di ottimizzazione.

Ottimizzazione
Poligoni messi male possono causare problemi

Risorse non utilizzate che in qualche modo pesano sul sistema

Quando si riuscì ad hackerare la ROM di Chrono Trigger si scoprirono delle risorse non utilizzate nella versione finale, in particolar modo dei nemici con dei colori che non appaiono nel gioco.

Tuttavia qui si parla di sprite e di risorse che occupavano davvero pochissimo su una cartuccia che appesantiva poco (o per nulla) un sistema.

Ottimizzazione programmi: da cosa dipende a livello tecnico?

Immagina un programma come Earthquake 3D prima menzionato che ha lo stesso identico problema, ma con vari modelli della terra con poligoni magari messi in modo sbagliato che non si usano nella versione finale del programma.

Altre cause non note sulla mancata ottimizzazione

Tra le cause elencate potrebbero essercene alcune non note all’utente finale, piccolo esempio, un particolare hardware poco utilizzato che non è stato preso in considerazione dagli sviluppatori e quindi proprio su quello funziona male.

Concludendo

È sempre difficile individuare le cause di una mancata ottimizzazione e il vero problema è che programmi e videogiochi oggiogiorno raramente escono fatti e finiti, di conseguenza gli sviluppatori possono permettersi di prendersela comoda perché tanto risolveranno più avanti.

Il vero problema è che questo va ad impattare la vita lavorativa (o di intrattenimento) di chi deve usufruire del prodotto finale.

Come nell’esempio del linguaggio C che è molto basilare, spesso chi arriva a certi livelli scorda le fondamenta.

Condividi questo articolo
Facebook Twitter Copia il link
Share
Cosa ne pensi?
-0
-0
-0
-0
-0
-0
lascia un commento lascia un commento

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

  • Contatto
  • Media Kit
  • Chi siamo
  • Lavora con noi
  • Cookie Policy
  • Disclaimer

Copyright © Alpha Unity. Tutti i diritti riservati.​

  • Contatto
  • Media Kit
  • Chi siamo
  • Lavora con noi
  • Cookie Policy
  • Disclaimer
Bentornato in iCrewPlay!

Accedi al tuo account

Hai dimenticato la password?