Domanda

Come faccio a dichiarare i tipi dei parametri al fine di eludere il controllo dei tipi?

Come faccio a ottimizzare la velocità per dire al compilatore di eseguire la funzione il più velocemente possibile, come (ottimizzare la velocità (di sicurezza 0))?

Come faccio a fare una funzione inline nello Schema?

Come faccio a utilizzare una rappresentazione unboxed di un oggetto di dati?

E infine sono uno di questi importanti o necessario? Posso dipendere dal mio compilatore per rendere queste ottimizzazioni?

Grazie, kunjaan.

È stato utile?

Soluzione

  1. Non si può fare qualsiasi di questi in alcun modo portatile.
  2. È possibile ottenere una "sorta di" inlining usando le macro, ma è quasi sempre per cercare di farlo. Le persone che scrivono Scheme (o qualsiasi altra lingua) compilatori sono in genere molto meglio che a decidere quando è meglio per inline una funzione.
  3. Non è possibile rendere i valori unboxed; alcuni compilatori Schema lo farà come l'ottimizzazione, ma non in un modo che sia visibile (perché è un'ottimizzazione - e quindi dovrebbe mantenere la semantica).
  4. Per quanto riguarda la tua ultima domanda, una risposta è molto soggettiva. Alcune persone non possono dormire la notte senza sapere esattamente quanti cicli di CPU qualche funzione utilizza. Alcune persone non si preoccupano e vanno bene con fiduciosa il compilatore di ottimizzare le cose ragionevolmente bene. Almeno nelle fasi in cui è molto più di uno studente della lingua e meno di un implementor, è meglio attenersi a quest'ultimo gruppo.

Altri suggerimenti

Se si vuole dare una mano il compilatore, considerare di ridurre le definizioni di primo livello, ove possibile. Se il compilatore vede una funzione a livello superiore, è molto difficile per la sua indovinare come tale funzione potrebbe essere utilizzato o modificato dal programma. Se una funzione è definita nell'ambito di una funzione che lo utilizza, il lavoro del compilatore diventa molto più semplice.

C'è una sezione su questo nel manuale Chez Scheme: http://www.scheme.com/csug7/use.html# ./use:h4

A quanto pare Chez è uno dei più veloci implementazioni di Scheme c'è. Se ha bisogno di questa sorta di "guida" per fare buoni ottimizzazioni, ho il sospetto che altre implementazioni non può vivere senza di essa sia (o che semplicemente ignorare tutto insieme).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top