|
Опубликовано 10.07.2013 22:38 (11 лет назад) # |
Daemon написал:Ситуацию с взаимоблокировкой ссылок (не помню, как это правильнее называется) когда у объекта А есть ссылка на объект Б и наоборот
Это называется Dead Lock
KEFIR написал:Например как по вашему появились порты Max Payne и GTA III на андройд?
Верно, ведь Android крутиться поверх никсового ядра (а это C/C++).
KEFIR написал:В-третьих внезапно все эти тормоза в 99% случаев являются следствием искривления рук автора кода.
Ну тут добавить даже нечего. Почти всегда именно так. |
|
|
|
Опубликовано 11.07.2013 06:16 (11 лет назад) # |
Просто к слову, Xamarian утверждают, что их С# под мобилки компилируется в нативный код. |
|
|
|
Опубликовано 11.07.2013 06:22 (11 лет назад) # |
JKot, могу ошибаться, но кажется именно они взяли и написали свою реализацию .NET под Android/iOS (было на хабре пару месяцев назад), поэтому компиляция в нативный код весьма вероятно. Жаль их детище стоит немалых денег.
Ненавижу google за то, что они назвали прослойку, которая помогает запускать сторонний, а не нативный код на Android именно native development kit. Из-за этого у всех разрыв шаблона, что считать нативным кодом для Android.
редакция от Daemon, 11.07.2013 06:22 |
|
|
|
Опубликовано 11.07.2013 07:31 (11 лет назад) # |
Daemon, ява (JVM) на андроиде (DVM) это прослойка позволяющая запускать сторонний код. я думаю её приняли потому что в мире развелось слишком много говнокодеров не умеющих правильно управлять памятью. NDK это способ обхода этой прослойки и работа с настоящим нативным кодом.
редакция от Dan, 11.07.2013 07:32 |
|
|
|
Опубликовано 11.07.2013 07:57 (11 лет назад) # |
Мне кажется под словом "native" просто подразумевается код нативный для процессора, а не для ОС (нативный код для ОС это вообще как?) |
|
|
|
Опубликовано 11.07.2013 08:35 (11 лет назад) # |
Dan написал:
Daemon, ява (JVM) на андроиде (DVM) это прослойка позволяющая запускать сторонний код. я думаю её приняли потому что в мире развелось слишком много говнокодеров не умеющих правильно управлять памятью. NDK это способ обхода этой прослойки и работа с настоящим нативным кодом.
Вот как, не знал, спасибо за ликбез, товарищ!
Это называется Dead Lock
Пропустил что-то эту строку в ответе. Нет, dead lock бывает у нитей, когда одна ждет другую и наоборот. То, что я привел, называется циклической ссылкой (вспомнил-таки).
Кажется, мы уже совсем вне темы, граждане :) |
|
|
|
Опубликовано 11.07.2013 09:02 (11 лет назад) # |
Добавлю только насчет JIT - в яве он не просто так откладывает компиляцию как можно дольше - он анализирует КАК именно код выполняется и в зависимости от этого при компиляции выполняет оптимизации недоступные никаким другим компиляторам. Именно благодаря этому так много холиваров было, когда некоторые тесты показали, что в некоторых случаях Java код выполняется скорее даже C++ кода. Именно поэтому Java так популярна на серверах и в облаках - там не надо чтобы сервер работал максимально быстро сразу после запуска, главное что после "разогрева" JIT выдает суперпроизводительный код. GC кстати на серверах тоже не так критичен как в реалтайм приложениях.. Но в Андроиде реалии другие, и Гугл потратил немало времени, пока добился чтобы JIT "разогревался" быстрее и GC не вызывал таких заметных притормаживаний и запускался в более "правильные" моменты - помню я следил за чейнджлогами и в версиях Андроеда 2.2-2.3 очень много работы было сделано по этому поводу. |
|
|
|
Опубликовано 05.09.2013 08:52 (11 лет назад) # |
Не знаю куда было это лучше положить, пусть это будет здесь, советую всем послушать подкаст последний https://vk.com/megadrone86?w=wall1346786_2528%2F0ea87d7919dae06839 |
|
|