Ответ: canvas: аналог GetPixel или как ?
немного о составлении программ
По оптимизиции можно найти много подробной доки, подойдет любая т.к. принципы практически одни и те же, только встречаются некоторые ньюансы, так для прочессоров x86 самые быстрые циклы это уменьшение до нуля, т.к. инструкция декремента выставляет флаг переполнения если результат становится отрицательным, т.е. не нужно использовать медленную команду сравнения. Кроме того самые быстрые команды сравнения - это сравнение с нулем.
В java (как и MP) есть набор инструкций с константами 0,1,2 которые работают чуть быстрее, это однобайтовые команды и их зачения не грузятся из константного пула.
везде где можно используйте одномерные массивы, т.к. на каждом элементе массива java проверяет выход за границы.
Умножения оставил, как и говорил, для наглядности, а вообще можно сделать отдельную переменную для смещения и увеличивать ее на единицу при каждой итерации цикла.
в циклах крайнее значение нужно делать константой (числом), как уже говорил желательно 0, ну или на худой конец переменной, т.к. крайнее значение вычисляется при каждой итерации.
немного о размере программы: старайтесь записывать алгоритмы настолько эффективно, как только это возможно, т.к. когда-нить пригодятся эти куски кода в других разработках.
имена глобальных переменные желательно делать короче, в подпрограммаx MP все равно ставит свои короткие имена, но тоже старайтесь чтоб имена выглядели однообразно в каждой подпрограмме.
__
Вообще оптимизация под java не всегда очевидна: мелкие корректировки на некоторых устройствах не заметны, т.к. различны реализации java-машин, поэтому лучшая оптимизация - привильно спроектированный алгоритм, не содержащий лишних команд. Сам когда сажусь писать алгоритм, вопрос который задаю себе-"что еще здесь можно упростить?"
часто попадаются хорошо написанные программы, но не совсем корректно разбитые на управляющие конструкции, т.е. планировка кода по подпрограммам: всегда стараюсь разбить программу на основные алгоритмы, работающие не зависимо друг от друга и использующие минимум глобальных переменных, и единую управляющую конструкцию связывающую в одном месте вместе алгоритмы. так модифицировать программу, но чрезмерная разбивка тоже вредна, т.к. на загрузку подпрограммы тоже уходит время.
__
p.s.: про туториалы - так я этим и занимаюсь в свободное время, только применительно к уже готовым программкам, потому что изредка, но попадаются интересные кусочки алгоритмов
|