← All posts tagged Java

hatred
Java programming IDEA да, Intel Atom 1.6GHz, 1Gb RAM и IntelliJ IDEA 10.5 просто созданы друг для друга... Eclipse хотя бы чуточку ворочается. Про JBoss не говорю — мрут оба. Но на работе проникаемся IDEA, возможно, даже, будем по результатам покупать (или продолжать сидеть на Eclipse)
hatred
Java j2ee ThreadLocal Memory Leak
Использовать ThreadLocal переменные удобно, для расшаривания данных между разными частями одного потока (допустим достучаться из POJO объекта к HTTP сессии и т.п.). Другое дело, что чревато в контексте использования сервера приложений: тут треды не уничтожаются, а возвращаются в пул потоков, как следствие: GC не собирает их, они остаются в памяти, а тут, помимо явной утечки, есть ещё и потенциальная дырка в безопасности...
Подробнее: hatred.homelinux.net
hatred
Java programming video octave yuv Цветовое пространство YUV
Многим знакомо цветовое пространство RGB (Red/Green/Blue), мне потребовалось же работать с входными данными пространства YUV, которое широко используется в семействе кодеков MPEG.

Далее мал-мало информации и код на Java для преобразования, арифметика целочисленная: hatred.homelinux.net

Тот же код я после вынес при мощи JNI в C++ либу, прироста в скорости не получил.
hatred
Java народ, в двух словах, подскажите, как работают обфускаторы для java кода, особенно интересует момент, когда методы или переменные класса заменяются на ключевые слова языка: ясно дело, такой код после декомпилиции сложно не только читать, но и повторно запустить. Но это для меня мелочь, пакость в том, что пользуясь удаленной отладкой (из того же Eclipse) в таком кода хрен расставишь break-points — часто ругается что не может найтись сигнатура. Или подскажите как ставить точки останова в жава приложении, исходников которого нет и подцепляешься к нему через remote-debugger?

ЗЫ задачу я таки выполнил, нашел места где обфускатор хорошо поработать не смог, нужные данные вытянул, но на будущее :)
hatred
Java programming народ я малость того: в программе осуществляется много раз преобразование цвета из пространства YUV в RGB и обратно, так вот, сделал математику для этого, сделал её целочисленной (домножая на 2^n и потом делая смещение вправо на n бит). математика работает. Решили попробовать оптимиздинг: число цветов 2^24, вполне можем выделить памяти на два массива по 64 метров, предварительно рассчитать, заполнить таблички, и потом по индексу, которым будет сам цвет, брать нужные значения. Внимание вопрос: в каком месте я туплю, но почему из массива данные берутся МЕДЛЕННЕЕ чем расчет по формуле. Причем значительно так: алгоритм работает с математикой на 15 секунд быстрее (40 и 55 секунд соответственно).

массивы: byte[] rgb2yuv_table = new byte[size]; // size = 2^24*3
hatred
Java programming оказывается, я "программирую на Java, со словарем".
или мне действительно пофиг на язык программирования, если нужно задачу решить (не пофиг, наверное, когда заоптимиздить нужно): буквально за несколько часов сделал: чтение properties-файлов, чтение данных из RS232, обработку, реализацию на базе MessageDigest php-компатибле md5, отправку HTTP POST запросов. (Да, это что-то вроде шлюза: Gps2WebServer). Да, это первая программа на Java, эдакий, Hello World :-D Хотя там кирпичи на все случае, по-моему, имеются...