dz

Есть память, а есть память

Nov 17, 2013 01:07

Если вы не low level programmer, вам этот пост катастрофически неинтересен.

Я он или хочу им быть... )

программирование

Leave a comment

Comments 80

sergegers1 November 16 2013, 22:50:28 UTC
Смешно. Прямой доступ к памяти нужен не только для обращения к ядру, но и в юзермоде, если идёт речь о юзермоде. А это неэффективно. Вместо

mov dword ptr[ecx+10h], 7h

надо делать

mov edx, ecx
add edx, 10h
push edx
call _myFuckingCheckFunc@4
test eax, eax
jne SHIT_HAPPENS
mov dword ptr[edx], 7h

Это по эффективности.

А вторая проблема - это замена рантайм проверками компайл тайм проверок, которые достигаются строгой типизацией. Их можно обойти, если целенаправленно к этому стремиться, но на практике это происходит редко.
А ведь кроме памяти существуют ещё и другие ресурсы, типа файловых дескрипторов, с которыми управляемым языкам приходится работать в старом добром C стиле. А ещё есть проблема момента освобождения ресурса/объекта, который часто быват нужно явно контролировать. В общем, GC просто замазыват проблему и провоцирует плохой дизайн.

Reply

stealthy_shadow November 16 2013, 23:26:55 UTC
Неэффективно - для кого? Для программиста? Так он второе и не пишет - за него компилятор все делает. Да и лукавите вы - откуда вы знаете, что у вас там в ECX и куда ведет ECX+10h? Ниоткуда? Или все-таки есть где-то код проверки? Нету? Ну, получите синий экран

Reply

rblaze November 17 2013, 06:07:43 UTC
Мне кажется, ваш разум отравлен страшным сиплюсплюсом и жабой. Ну какое отношение GC имеет к освобождению ресурсов? Только то, что вы привыкли делать это в деструкторе объектов.

Reply

sergegers1 November 17 2013, 10:34:59 UTC
Подумайте на досуге, зачем нужен GC.

Reply


alll November 16 2013, 23:11:13 UTC
> На джаве или сишарпе - вообще нет. У них и эффективность на уровне си.

Мои знакомые серверные программисты, несколько лет пытавшиеся построить на яве относительно высоконагруженый сервер, работающий хотя бы несколько дней без многоминутных фризов на сборку мусора, прочитав сие евангелие минимум час плакали бы обнявшись.

Reply

(The comment has been removed)

alll November 17 2013, 01:27:46 UTC
Ну в общем пути решения проблемы им известны, но клепать на коленке менеджер памяти поверх байтовых массивов они пока не созрели. Просто выбирают время суток потемнее и помолясь пинают сборщик мусора.

Reply

nil59 November 17 2013, 13:57:55 UTC
можно попробовать начать с включения G1GC...

Reply


seacat November 17 2013, 01:26:14 UTC
Ну да. Так и есть. А народ не верит, им подавай теплые ламповые компиляторы...

Reply


spamsink November 17 2013, 05:29:26 UTC
Навеяно надвигающимся МенуэтОСом 1.0?

Reply

dz November 18 2013, 19:36:32 UTC
да не, прошлым постом и комментами.

Reply


os80 November 17 2013, 11:57:26 UTC
Теоретически мы имеем миллион долларов всё верно, а практически Микрософт не может найти программистов на дотнете, у которых бы paint или калькулятор не тормозили.

Reply

vlkamov November 18 2013, 10:49:17 UTC
> Микрософт не может найти программистов на дотнете, у которых бы paint или калькулятор не тормозили.

Естественно. Ведь поиск программистов и ускорение работы приложения - это разные задачи. Если нужно решить задачу, пусть ищут решение задачи, а не программистов.

Reply


Leave a comment

Up