Народ, может кто-нить подкинет приблизительное соотношение для различных моделей (а скорее фирм)?
Интересует именно вопрос математической производительности (примитивные операции >> << ^ & + -).
Например для Siemens (это то, что я проверил на своей телефоне SL45i):
J2SE ~ 1000* J2ME Emulator
J2ME Emulator ~ 100*Phone
Т.е. в данном случае скорость выполнения на телефоне ~ в 100000 (сто тысяч) медленнее чем на компе
Больше всего интересует конечно соотношение между эмулятором и телефоном.
Могу добавить, что эмулятор для S55 и SL55 работает ~ в 3 раза быстрее, чем для SL45i, C55, M50.
Насколько я также знаю, Siemens самые тормознутые в этом плане телефоны. Может кто-нить натыкался на сравнение по производительности моделей различных фирм?
Также хотелось бы услышать замечания по оптимизации — может быть кто-нить проводил исследования? Ну там работа с массивами, ветвление (например switch+case на Siemens быстрее чем if-else, а на J2SE наоборот) и т.д.
12.09.03 16:54: Перенесено модератором из 'Java' в Мобильный устройства. — ХД
Здравствуйте, Karimchik, Вы писали:
K>Народ, может кто-нить подкинет приблизительное соотношение для различных моделей (а скорее фирм)? K>Интересует именно вопрос математической производительности (примитивные операции >> << ^ & + -). K>Например для Siemens (это то, что я проверил на своей телефоне SL45i): K>J2SE ~ 1000* J2ME Emulator K>J2ME Emulator ~ 100*Phone
K>Т.е. в данном случае скорость выполнения на телефоне ~ в 100000 (сто тысяч) медленнее чем на компе
А каком компе? Это тоже существунно....
Я думаю тебе поможет — http://www.dogada.com/javame/results/
K>Больше всего интересует конечно соотношение между эмулятором и телефоном. K>Могу добавить, что эмулятор для S55 и SL55 работает ~ в 3 раза быстрее, чем для SL45i, C55, M50.
K>Насколько я также знаю, Siemens самые тормознутые в этом плане телефоны. Может кто-нить натыкался на сравнение по производительности моделей различных фирм?
K>Также хотелось бы услышать замечания по оптимизации — может быть кто-нить проводил исследования? Ну там работа с массивами, ветвление (например switch+case на Siemens быстрее чем if-else, а на J2SE наоборот) и т.д.
Если чистая математика то не знаю..... А при написании игры гораздо выгоднее смотреть на другие вещи — например на многих телефонов вывод текста или закращивание прямоугольника медленнее чем вывод картинки.......
Здравствуйте, Young, Вы писали:
Y> А каком компе? Это тоже существунно....
Ну как бы с компом тут сравнение конечно интересно именно порядком. Комп — пень 4-й на 2 гц. Больше интересует разница между эмулятором и телефоном.
Y> Я думаю тебе поможет — http://www.dogada.com/javame/results/
Спасибо, хорошая ссылка! Но как я и думал — сименсы самые мертвые... И скорее всего это связано с реализацией KVM, бо процы в телефонах вроде как одинаковые (Dragon Ball, насколько я знаю)
Y>Если чистая математика то не знаю..... А при написании игры гораздо выгоднее смотреть на другие вещи — например на многих телефонов вывод текста или закращивание прямоугольника медленнее чем вывод картинки.......
А в частности например в играх не приходится подгонять производительность для одних моделей и притормаживать другие?
+ ООчень интересует вопрос по работе с памятью — особенности и все такое. В семенсах общеизвестный глюк про 16К — объекты больше не могут весить. Есть что-нить подобное еще где-нить?
Здравствуйте, Karimchik, Вы писали:
K>Здравствуйте, Young, Вы писали:
Y>> А каком компе? Это тоже существунно....
K>Ну как бы с компом тут сравнение конечно интересно именно порядком. Комп — пень 4-й на 2 гц. Больше интересует разница между эмулятором и телефоном.
Хм. У меня например эмудятор Nokia 7650 (который полноценный) — работает на 3 пне 600 Mz мендленне чем реальный телефон....
Y>> Я думаю тебе поможет — http://www.dogada.com/javame/results/
K>Спасибо, хорошая ссылка! Но как я и думал — сименсы самые мертвые... И скорее всего это связано с реализацией KVM, бо процы в телефонах вроде как одинаковые (Dragon Ball, насколько я знаю)
Кстати Siemens Game API пострее намного чем родные функции для вывода графики...
Y>>Если чистая математика то не знаю..... А при написании игры гораздо выгоднее смотреть на другие вещи — например на многих телефонов вывод текста или закращивание прямоугольника медленнее чем вывод картинки.......
K>А в частности например в играх не приходится подгонять производительность для одних моделей и притормаживать другие?
Водходилось..... Но лишь изменением времении sleep....
Если речь конечно о том что игра быстрее чем нужно.....
K>+ ООчень интересует вопрос по работе с памятью — особенности и все такое. В семенсах общеизвестный глюк про 16К — объекты больше не могут весить. Есть что-нить подобное еще где-нить?
Честно говоря мне об таком общеизвестном глюки не приходилось слышать.... Да и берут сомнения что это так..... По крайней мере когда я писал по M50 и S55 такого небыло.... Но впрочем может у меня объектов в 16 кил не было....
На каждом телефоне свои глюки — описывать их всех можно долго....
По работе с памятью — ну вспоминается интерестная работа gc на 7650. Там вызов gc реально память не освобождает. Освобождение либо происходит каждый раз через определенное время — того что ты за данный промежуто удалил. Либо когда кончается память — тогда чистится все! А памяти там 32 мега — т.е. на секунд десят телефон умирает....
А про максимальный размер объекта не слышал ни где.....
Здравствуйте, Young, Вы писали:
Y>Хм. У меня например эмудятор Nokia 7650 (который полноценный) — работает на 3 пне 600 Mz мендленне чем реальный телефон....
Прикольно
K>>+ ООчень интересует вопрос по работе с памятью — особенности и все такое. В семенсах общеизвестный глюк про 16К — объекты больше не могут весить. Есть что-нить подобное еще где-нить?
Y>Честно говоря мне об таком общеизвестном глюки не приходилось слышать.... Да и берут сомнения что это так..... По крайней мере когда я писал по M50 и S55 такого небыло.... Но впрочем может у меня объектов в 16 кил не было....
Есть такое дело, само легко проверить, это попробовать создать массив длиной больше 16Kb.
Y>На каждом телефоне свои глюки — описывать их всех можно долго....
Это не радует...
Y>По работе с памятью — ну вспоминается интерестная работа gc на 7650. Там вызов gc реально память не освобождает. Освобождение либо происходит каждый раз через определенное время — того что ты за данный промежуто удалил. Либо когда кончается память — тогда чистится все! А памяти там 32 мега — т.е. на секунд десят телефон умирает....
Реализация gc — частенько кривовата и не только в телефонах
Здравствуйте, Karimchik, Вы писали:
K>Здравствуйте, Young, Вы писали:
Y>>Хм. У меня например эмудятор Nokia 7650 (который полноценный) — работает на 3 пне 600 Mz мендленне чем реальный телефон....
K>Прикольно
Кому как......
Просто он еще мегов 130 оперативки жрет — грузится секунд 10, долго достаточно. А облегченная версия (которая только j2me, без EPOC эмулирует) к соожалению не совсем соответствует последним прошивкам....
K>>>+ ООчень интересует вопрос по работе с памятью — особенности и все такое. В семенсах общеизвестный глюк про 16К — объекты больше не могут весить. Есть что-нить подобное еще где-нить?
Y>>Честно говоря мне об таком общеизвестном глюки не приходилось слышать.... Да и берут сомнения что это так..... По крайней мере когда я писал по M50 и S55 такого небыло.... Но впрочем может у меня объектов в 16 кил не было....
K>Есть такое дело, само легко проверить, это попробовать создать массив длиной больше 16Kb.
И не буду даже... Абсолютно нет желанию писать под Siemens.
Y>>На каждом телефоне свои глюки — описывать их всех можно долго....
K>Это не радует...
Еще печальней что баги зависят от прошивок.....
Y>>По работе с памятью — ну вспоминается интерестная работа gc на 7650. Там вызов gc реально память не освобождает. Освобождение либо происходит каждый раз через определенное время — того что ты за данный промежуто удалил. Либо когда кончается память — тогда чистится все! А памяти там 32 мега — т.е. на секунд десят телефон умирает....
K> Реализация gc — частенько кривовата и не только в телефонах
Честно говоря не знаю....я на "большой" яве никогда не писал....только на j2me....
Кстати на счет сименсов — вспомнил еще один глюк на M50. Там каждый вызов drawString отедал по 2кб памяти. Соответственно gc вызывается очень часто — тормоза.
Здравствуйте, Karimchik, Вы писали:
K>Здравствуйте, Young, Вы писали:
Y>>И не буду даже... Абсолютно нет желанию писать под Siemens.
K>Я так понимаю, что это обусловлено чисто коммерческими соображениями? Можешь составить приблизительный хит-парад популярности J2ME телефонов?
Ну думаю 40-50% рынка это Nokia.
А области нормальных трехмерных мультиплеерных игр — порядка 90%.
Потом процентов думаю 30 это Моторола.
Потом идет Sony-Эрексон.
Ну и дальше LG,Siemens,Toshiba,Sharp и прочее....
Но это хитпарат с точки зрения так сказать заказчиков....
Но что реальность находится в пределаъ +/- 10 процентов.
Здравствуйте, Karimchik, Вы писали:
K>Народ, может кто-нить подкинет приблизительное соотношение для различных моделей (а скорее фирм)? K>Интересует именно вопрос математической производительности (примитивные операции >> << ^ & + -). K>Например для Siemens (это то, что я проверил на своей телефоне SL45i): K>J2SE ~ 1000* J2ME Emulator K>J2ME Emulator ~ 100*Phone
У меня есть свой тест который давит математикой и немного результатов есть на http://henson.newmail.ru/j2me/Float.htm
K>Т.е. в данном случае скорость выполнения на телефоне ~ в 100000 (сто тысяч) медленнее чем на компе
От компа зависит
K>Больше всего интересует конечно соотношение между эмулятором и телефоном. K>Могу добавить, что эмулятор для S55 и SL55 работает ~ в 3 раза быстрее, чем для SL45i, C55, M50.
Тут вообще прямой связи может не быть
K>Насколько я также знаю, Siemens самые тормознутые в этом плане телефоны. Может кто-нить натыкался на сравнение по производительности моделей различных фирм?
NOKIA явно быстрей, причем все модели, даже 3510i
K>Также хотелось бы услышать замечания по оптимизации — может быть кто-нить проводил исследования? Ну там работа с массивами, ветвление (например switch+case на Siemens быстрее чем if-else, а на J2SE наоборот) и т.д.
Для каждой модели приемы свои, но мне приходилось больше всего экономить на памяти, соответственно искать способы хранения больших массивов и пр.
IMHO, весьма кривые результаты... Например, в тесте Graphics speed кое-где время теста == 0, и тем не менее проставлена какая-то скорость
Считать скорость эмулятора — бред, хоть бы конфигурацию компа написали...
У Nokia 7650 написали 32 кб оперативной памяти
В общем, как-то все непроверено и недокументировано.
Здравствуйте, Cider, Вы писали:
C>Здравствуйте, Young, Вы писали:
Y>> Я думаю тебе поможет — http://www.dogada.com/javame/results/
C>IMHO, весьма кривые результаты... Например, в тесте Graphics speed кое-где время теста == 0, и тем не менее проставлена какая-то скорость C>Считать скорость эмулятора — бред, хоть бы конфигурацию компа написали... C>У Nokia 7650 написали 32 кб оперативной памяти C>В общем, как-то все непроверено и недокументировано.
А вы поучаствуйте.....
Скачайт мидлет запустите — пришлите им результаты....
А то ругать все горазды.....
А результаты реальные — сам для некоторых телефонов делал..... Если кажется для каких-то нереальных — перетестируйте, сделайте доброе дело....
Про скорось эмулятора — не совсем бред, некоторые эмуляторы в том числе эмулируют и примерную скорость исполнения.... Т.е. как бы более полнос соответствуют телефону....
Здравствуйте, Cider, Вы писали:
C>Считать скорость эмулятора — бред, хоть бы конфигурацию компа написали...
Слышал звон, да не знает, где он... Для Siemens эмуляторов соотношение: J2ME Emulator ~ 100*Phone верно для любой современной машины (Проверялось Celeron 600+512Mb, Celeron 1700+512Mb, Athlon 1800 + 512Mb, Pentium4 2000+512Mb)
C>В общем, как-то все непроверено и недокументировано.
Тут никто ничего и никому доказывать не собирается — тут идет обмен опытом...