| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2005 11:02:04
|
bandrade
GUJ Ranger
Membro desde: 20/01/2003 15:45:15
Mensagens: 782
Offline
|
pessoas.... é o seguinte... no java a gente pode usar um ofuscador pra tirar as classes e funcoes desnecessarias e tal... soh que eu to com um problema gigante....
minha aplicação tah dando uns 200K e preciso q ela tenha até 100K pois é pra aplicativos móveis... então, alguem tem noticia de algum ofuscador pra C++??
antes q vcs falem q eu sou um péssimo programador por fazer uma aplicação tão grande eu explico: a gente tem uma biblioteca pra subir um pouco o nível e deixar a programação (MUITO) mais fácil... dai a aplicação cresce né...
ah, jah busquei aki no chat e no google (antes q me xinguem.. (;
sem muito sucesso... );
valeu,
This message was edited 1 time. Last update was at 27/04/2005 11:03:45
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2005 11:09:56
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Qual compilador mesmo?
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2005 12:49:26
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Em C++, eu sinto dizer, mas nao tem milagre. O jeito eh verificar todos os includes e todas as bibliotecas utilizadas e ver o que da pra cortar. Eh um porre, eu sei, mas...
Outra alternativa eh fazer um self-loader que carrega o codigo gzipado dele mesmo, do mesmo jeito que o bom e velho DOS4GW fazia...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2005 13:14:19
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Olá,
Dica de um programador C++ amigo meu (valeu, Gabriel):
que tal o flag -O2 (onde 2 é o nível de otimização, depende do compilador, pode ser maior ou menor) ?
This message was edited 1 time. Last update was at 27/04/2005 13:23:59
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2005 13:22:27
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
http://www.catch22.net/tuts/minexe.asp
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2005 13:24:32
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Tem algumas opções de compilação que você pode tentar, mas com resultados não muito satisfatórios, e nem sempre disponíveis no seu compilador (é o Embedded Visual C++ que você está usando? Se for, não sei exatamente quais as opções porque não estou com ele instalado aqui, e de qualquer maneira ele tem menos opções que o compilador MSVC++ normal.)
Uma delas é o /Os (favor code space), mas não adianta muito (deve reduzir no máximo uns 4K no seu programa de 200 K.
Outra delas é o /Gf (enable string pooling), que na hora da link-edição deve pegar a maior parte das constantes strings repetidas, e criar apenas uma cópia - acho que ela deve ser combinada com /GF (enable read-only string pooling).
Não é necessário repetir que tais opções de compilação devem ser aplicadas para todo o código, incluindo as bibliotecas que estão sendo usadas.
Deve haver alguma opção no linker para tentar reduzir o tamanho ao máximo possível também.
E obviamente você tem de compilar em modo Release e remover um monte de comodidades (por exemplo, mesmo em modo Release é possível ter informação de depuração, o que ajuda na hora de detectar problemas em uma aplicação na produção. Veja se isso não está sendo incluído também).
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2005 14:30:51
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
dependendo da plataforma, você pode dar strip nos símbolos do executavel.
Mande o teu linker gerar um mapa do executavel e veja onde tem gordura.
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2005 15:29:38
|
renatosilva
GUJ Master
Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline
|
UPX
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2005 16:26:18
|
fmeyer
Moderador
Membro desde: 22/02/2005 17:26:29
Mensagens: 1583
Localização: Sao Paulo
Offline
|
é gcc ??
se for a melhor otimização é -O3.
Dica, se voce tiver uma heap razoavel, troque variaveis estaticas como estruturas por ponteiros e não use muito a pilha, não sei por que cargas d'agua o C++ gera um executavel maior para variaveis staticas e de pilha
|
Fernando Meyer http://fernandomeyer.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/04/2005 16:28:53
|
bandrade
GUJ Ranger
Membro desde: 20/01/2003 15:45:15
Mensagens: 782
Offline
|
puts... vamos lah... utilizio o Visual Estudio pra codificação (é, pra brew eh esse mesmo... não tem melhor) e o ARM para a geração do mod (que é o executável do BREW), geração dos .o e depois do .mod né... ele eh responsável pela linkedição... );
aaahhh... odeio o mundo de compilados... );
|
Will Code For Food |
|
|
 |
|
|