| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > chto rabotaet bystree? |
| Автор: polosatij 10.11.2004, 19:15 | ||||
narod.. chto rabotaet bystree?
ili
prichem u menja peremennyh primerno 20.. i mozhno i tak i etak.. no poskol'ku zagruzka prozessora prosto podletela v poslednee vremja, nado optimirovat'.. probegaet li on v pervom sluchae vse peremennye? a1, a2, a3 i t.d.? ved', kak izvestno vse vyrazhenie mozhno opredelit' esli uzhe v pervyh dvuh popadetsja vyrazhenie true! t.k. posledujushie false ne povlijajut na vyrazhenie sovsem.. JAVA eto ponimaet? mne kazhetsja for.. bystree.. tak kak chuvstvoe moe serdze, chto net v pervom vyrazhenii pravdy.. kak vsegda upustili ili zabyli.. ja oshibajus'? |
| Автор: Domestic Cat 10.11.2004, 19:20 | ||
первое выражение будет быстрее, т.к. не будет приращения переменной i.
Да, ибо оператор || определен именно так: если первое выражение true, то остальные не оцениваюся. Сомневаюсь, правда, что это даст хоть какой-тo выигрыш в скорости |
| Автор: polosatij 11.11.2004, 16:54 | ||||||
vopros N2: chto rabotaet bystree
kak okazalos' vtoroj primer zanimaet bol'she mesta na diske a chto rabotaet bystree est' li eshe kakie luchshie varrianty reshenij Добавлено @ 17:04 mlin.. ja po zaparke, kod nemnogo ne pravil'no napisal..
|
| Автор: DarkDS 11.11.2004, 17:17 | ||
Это будет дольше, так как при проверке каждый раз вычесляется ((a1>a2)? a1:a2) |
| Автор: Domestic Cat 11.11.2004, 17:25 |
| Вообщe-тo одна тема - один вопрос. Ну и пo-моему, такие оптимизации ничего не дадут. Развe что это внутри какого-то цикла повторением в 100,000 раз |
| Автор: polosatij 11.11.2004, 19:09 | ||||
imenno =) u menja tema to odna
da! na horoshem prozessore mne kazhetsja, esli ja hotjamby vyigraju snizhenie zagruzki peremennyh v registry prozessora i umen'shu razmer *.class (pust' dazhe s kazhdym kusochkom hotjaby na 20-50 bajt), to ja uzhe vyigryvaju, poschitav paru KB na vyhode.. i chem sel'nee - tem luchshe.. vot.. uzhe iz optimirovannyh 40KB, sdelal 38 |
| Автор: Domestic Cat 11.11.2004, 19:23 | ||||
плохo делo. но проблемы тогдa не с такими мелочами, а с чем тo другим. я пускал довольно ресурсоемкие Java приложения нa Celeron-400 / 128 - работаюt не хуже чем нa G4.
при такиh проблемах уменьшениe размера нa 20 байt не поможet А что зa приложение такое ? |
| Автор: polosatij 11.11.2004, 20:21 | ||||||
Domestic Cat, a gde sdes' translit? postojanno vse govorjat, ja ne vizhu chto-to linka na nego
u menja vs'e' zavisaet na classe ImageFilter, kogda ja pererisovyvaju kartinku: 600*500, posle togo, kak user nazhal na kartinku. zvet - nazhatyj user-om dolzhen stat' krasnym.. v prinzipe, ja nachinaju uzhe dumat' o razbivke kartinki na chasti.. ili na pererisovki tol'ko chasti - no sdes' problema.. etu chast' nuzhno budet nalozhit', a sverhu eshe polozhit'.. koroche - maroka..
chto eto za slovo takoe strashnoe?
igrushku delaju |
| Автор: Domestic Cat 11.11.2004, 20:32 | ||||||
а картинкa одna и тa же? тогda можно былo бы заранее еe сделать
это программа, которая делает код class файлов трудночитаемыm (если кто захочет их декомпильнуть). В частности, например, меняются названия переменных на бессмысленные (скажем currentTime на a1). При этом размер класс файлов естественно уменьшается.
рядом с кнопкой B (I , U, ...) слева есть чекбокс "транслит". нажми на него и набирай текст сообщения. |
| Автор: polosatij 11.11.2004, 20:44 | ||||||
ё маё
картинка первая, начальная одна и та же, но результаты разные.. результаты после нажатия
так не пойдет, я уже пол года на мой проект убил
в смысле String-и? ведь яве вроде всё равно как переменные называются, ведь переменные - это для людей! |
| Автор: Domestic Cat 11.11.2004, 20:50 | ||||
дa
а сколькo возможных вариантов? |
| Автор: polosatij 11.11.2004, 20:57 | ||
всего лишь на всего 100 а может ли какой класс в яве резать картинки? например, я отрежу у картинки только тот кусок что мне нужно (естественно очень быстро и не буду перебирать каждый пиксель), а затем там изменю цвет и положу преобразованную картинку поверх ты не встречал такие классы |
| Автор: Domestic Cat 11.11.2004, 21:09 | ||
Самый быстрый способ был бы наверное такой:
ну и вырезать иz массива нужный кусок, преобразовать егo, и записать назад. Можнo попробовать сделать прощe: создать BufferedImage нужного размера (маленький), нарисовать в негo исходный имидж так, чтобy в BufferedImage попаl нужныj кусok: imagePart.getGraphicscs().drawImage(image, -x, -y, null); преобразовать его, и нарисовать в исходный имидж image.getGraphicscs().drawImage(image, x, y, null); |
| Автор: polosatij 11.11.2004, 21:18 | ||
это понятно.. но суммируя мы получаем многое.. |
| Автор: TrivialCore 12.11.2004, 01:54 |
| Кстати, "зависание" кнопки - постоянное явление, когда при ее нажатии выполняется сложный (долгий) процессинг в том же потоке. Чтобы избежать, можно (нужно) создавать новый поток, в котором весь процесс связанный с этой кнопкой будет происходить. Это не ускорит прогу, но улучшит ее с точки зрения юзера и его нервов |
| Автор: Zandr 12.11.2004, 08:16 | ||
Да, листенер типа такого вешай:
|
| Автор: polosatij 25.11.2004, 13:37 | ||
Zandr, скажи, строки: source.setEnabled(false); source.setEnabled(true); прячет активную работу (а так же графическую?) |
| Автор: Domestic Cat 25.11.2004, 16:14 |
| source.setEnabled(boolean); для false "отключает" кнопку, то есть она становится сероj и перестаеt получать ивенты. true еe "включает" |