Re: Оптимизатор размера class файлов...
От: V.Petrovski Беларусь  
Дата: 16.03.04 07:47
Оценка: 3 (1)
Здравствуйте, Young, Вы писали:
Y>Важен именно размер! Натравливать предполагается на мидлеты.
Я не знаю но предпологаю что class в Java организован также как
и PE файлы в .NET.

Так вот самое объемное в сборках это:

1. Куча СтроковыхЛитералов — сюда входят все имена полей, типов, методов, парметров
2. Ресурсы
3. Таблицы с метаданными

Так вот исходя из выше перечисленного, как можно уменьшить объем?

1. Использовать короткие имена для полей, типов, методов, парметров и пытаться
во многих местах использовать одно и тоже название.

2. Уменьшать таблицы метаданных путем уменьшения количества полей, классов, методов, парметров.
Не обромлять простые поля так называемыми пустыми аксесорами, пример

class Class1
{
    private String name = "";
    public String get_Name()
    {
        return name;
    }
    public void set_Name(String value)
    {
        name = value;
    }
}

лучше

class Class1
{
    public String name = "";
}
... << RSDN@Home 1.1.3 stable — Трек 12>>
Re: Оптимизатор размера class файлов...
От: mihhon  
Дата: 16.11.04 00:01
Оценка: 2 (1)
http://www.s5systems.com/jPresto.htm
Оптимизатор размера class файлов...
От: Young yunoshev.ru
Дата: 15.03.04 19:11
Оценка:
Посоветуйте пожалуйста.

Jax, ProGuard — не предлагать — уже проходили....

Хочется чего нибудь более умного чем замена имен и выкидывание ненужных кусков и танцы с наследованием.

Чтобы хотябы код


int a = 4;
int b = 4;
int c = a/b;


оптимизировал.

Важен именно размер! Натравливать предполагается на мидлеты.

С Уважением Андрей......
Re: Оптимизатор размера class файлов...
От: dshe  
Дата: 16.03.04 07:05
Оценка:
Здравствуйте, Young, Вы писали:

Y>Посоветуйте пожалуйста.

Y>Jax, ProGuard — не предлагать — уже проходили....
Y>Хочется чего нибудь более умного чем замена имен и выкидывание ненужных кусков и танцы с наследованием.
Y>Чтобы хотябы код
Y>
Y>int a = 4;
Y>int b = 4;
Y>int c = a/b;
Y>

Y>оптимизировал.
Y>Важен именно размер! Натравливать предполагается на мидлеты.

Мне кажется, что замена имен на более короткие гораздо более существенно сократит размер файла, чем оптимизация приведенного тобой кода.
--
Дмитро
Re[2]: Оптимизатор размера class файлов...
От: Young yunoshev.ru
Дата: 16.03.04 08:16
Оценка:
Здравствуйте, V.Petrovski, Вы писали:

VP>Здравствуйте, Young, Вы писали:

Y>>Важен именно размер! Натравливать предполагается на мидлеты.
VP>Я не знаю но предпологаю что class в Java организован также как
VP>и PE файлы в .NET.

VP>Так вот самое объемное в сборках это:


VP>1. Куча СтроковыхЛитералов — сюда входят все имена полей, типов, методов, парметров

VP>2. Ресурсы
VP>3. Таблицы с метаданными

VP>Так вот исходя из выше перечисленного, как можно уменьшить объем?


VP>1. Использовать короткие имена для полей, типов, методов, парметров и пытаться

VP>во многих местах использовать одно и тоже название.

Это понятно. С этим и так хорошо справляется тот же самый старый добрый jax.

VP>2. Уменьшать таблицы метаданных путем уменьшения количества полей, классов, методов, парметров.

VP>Не обромлять простые поля так называемыми пустыми аксесорами, пример

VP>
VP>class Class1
VP>{
VP>    private String name = "";
VP>    public String get_Name()
VP>    {
VP>        return name;
VP>    }
VP>    public void set_Name(String value)
VP>    {
VP>        name = value;
VP>    }
VP>}
VP>

VP>лучше

VP>
VP>class Class1
VP>{
VP>    public String name = "";
VP>}
VP>


Это тоже понятно.... Это сейчас и делается ручками — но мне казалось что должны существовать программы которые подобные операции делают атоматически. Это же достаточно прозрачно и очевидно....
Re[3]: Оптимизатор размера class файлов...
От: V.Petrovski Беларусь  
Дата: 16.03.04 08:17
Оценка:
Здравствуйте, Young, Вы писали:

Y>Это тоже понятно.... Это сейчас и делается ручками — но мне казалось что должны существовать программы которые подобные операции делают атоматически. Это же достаточно прозрачно и очевидно....


Есть такие программы называются Обфускаторы.
... << RSDN@Home 1.1.3 stable — Трек 9>>
Re[4]: Оптимизатор размера class файлов...
От: Young yunoshev.ru
Дата: 16.03.04 08:26
Оценка:
Здравствуйте, V.Petrovski, Вы писали:

VP>Здравствуйте, Young, Вы писали:


Y>>Это тоже понятно.... Это сейчас и делается ручками — но мне казалось что должны существовать программы которые подобные операции делают атоматически. Это же достаточно прозрачно и очевидно....


VP>Есть такие программы называются Обфускаторы.


Большинство найденных мною обфускаторов ставят задачей не уменьшенией размера — а запутывание кода или оптимизацией по скорости.
Более того из видимых мною и опробованных (Jax, ProGuard) — никто ничего кроме уменьшение имен, махинаций с наследованием и выкидывания пустого кода ничего не делает. Т.е. аналитических действий по оптимизации размера кода не делается. Делаются только очевидные вещи.

Хотя возможно я не прав и существуют обфускаторы которые заточенный под уменьшения размера или просто более интеллектуальны. На них я и прошу указать.....
Re[5]: Оптимизатор размера class файлов...
От: V.Petrovski Беларусь  
Дата: 16.03.04 08:28
Оценка:
Здравствуйте, Young, Вы писали:

Y>Более того из видимых мною и опробованных (Jax, ProGuard) —

Y>никто ничего кроме уменьшение имен, махинаций с наследованием и выкидывания пустого кода ничего не делает.

А эти действия не уменьшают размер?
... << RSDN@Home 1.1.3 stable — Трек 12>>
Re[6]: Оптимизатор размера class файлов...
От: Young yunoshev.ru
Дата: 16.03.04 08:31
Оценка:
Здравствуйте, V.Petrovski, Вы писали:

VP>Здравствуйте, Young, Вы писали:


Y>>Более того из видимых мною и опробованных (Jax, ProGuard) —

Y>>никто ничего кроме уменьшение имен, махинаций с наследованием и выкидывания пустого кода ничего не делает.

VP>А эти действия не уменьшают размер?


Уменьшают... Безусловно...

Но даже после этих действий код руками можно уменьшить еще очень значительно — причем не очень заморачиваясь, хотя бы банально прибивая те же самые пустыме аксесорамы....или подобные вещи....

Просто если сравнивать как код оптимизируют компиляторы для C, то там для подобной оптимизации используются очень интеллектуальные алгоритмы....
В видимых же мною обфускаторах есть только банальные замены.....что для мне и странно....
Re[7]: Оптимизатор размера class файлов...
От: V.Petrovski Беларусь  
Дата: 16.03.04 08:35
Оценка:
Здравствуйте, Young, Вы писали:

Y>Уменьшают... Безусловно...

Ты меня успокоил

Y>Просто если сравнивать как код оптимизируют компиляторы для C,

Y>то там для подобной оптимизации используются очень интеллектуальные алгоритмы....
Y>В видимых же мною обфускаторах есть только банальные замены.....что для мне и странно....

Вот тебе просторы для творчества, писать надо под Java такой же Опитимизатор.

А пока можно протыми рекулярными выражениями на php написать програмку которая коцает например
пустые аксесоры ну и еще что-нить, а потом на эту сборку натравить Обфускатор.
... << RSDN@Home 1.1.3 stable — Трек 14>>
Re: Оптимизатор размера class файлов...
От: Donz Россия http://donz-ru.livejournal.com
Дата: 15.11.04 11:03
Оценка:
Здравствуйте, Young, Вы писали:


Y>Посоветуйте пожалуйста.


Y>Jax, ProGuard — не предлагать — уже проходили....


Y>Хочется чего нибудь более умного чем замена имен и выкидывание ненужных кусков и танцы с наследованием.


Y>Чтобы хотябы код



Y>
Y>int a = 4;
Y>int b = 4;
Y>int c = a/b;
Y>


Y>оптимизировал.


Y>Важен именно размер! Натравливать предполагается на мидлеты.


Ничего в этом плане не появилось нового?
Ты, случаем, ещё не написал?
Re: Оптимизатор размера class файлов...
От: alecm  
Дата: 15.11.04 12:01
Оценка:
Здравствуйте, Young, Вы писали:


Y>Посоветуйте пожалуйста.


Y>Jax, ProGuard — не предлагать — уже проходили....


Y>Хочется чего нибудь более умного чем замена имен и выкидывание ненужных кусков и танцы с наследованием.


Y>Чтобы хотябы код



Y>
Y>int a = 4;
Y>int b = 4;
Y>int c = a/b;
Y>


Y>оптимизировал.


Y>Важен именно размер! Натравливать предполагается на мидлеты.


Y>С Уважением Андрей......


У меня была схожая задачка
юзал:
1. OptimizeIt
2. Компиляция с ключом -g:none
3. Обфускатор Proguard 3.07
В результате уменьшил размер в более чем 4 раза

ПС: да и еще перелопатил код сам на уменьшение размера
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.