2017-04-09 1 views
2

J'ai créé de code exécutable suivant Racket (choisir Racket et non GRacket):La taille de l'exécutable peut-elle être optimisée?

#lang racket 
(print "Hello World!") 

Il crée une tgz de 3,6 mb avec un exécutable de 6,2 mb. Cela semble très grand pour ce programme le plus simple. L'exécutable créé par Chicken Scheme avec le même code (print "Hello World!") est de taille 16984 octets (16.6 ko) seulement.

Je pense qu'il me manque quelque chose (éventuellement un certain paramètre d'optimisation) lors de la création de l'exécutable dans Racket. Comment cet exécutable peut-il être réduit?

Répondre

3

La documentation pour raco exe recommande d'utiliser un langage de base aussi petit que possible. Dans ce cas, remplacez #lang racket par #lang racket/base. Sur ma machine (Linux, Racket 6.8), la taille de l'exécutable passe de 6.6M à 988K.

J'ai été en mesure de réduire davantage la taille de l'exécutable en exécutant d'abord le démodulateur. J'ai sauvé le programme hello.rkt et couru

$ raco demod hello.rkt 
$ raco exe -o hello hello_rkt_merged.zo 

qui produit un exécutable de 277K.