@ProCxx

Страница 340 из 2477
Ned Ogl
19.10.2016
06:23:54
Следовательно, выгоднее статистически затирать страницы.

Я просто попутно проектирую mm своей микро-ОСи и задумался об эдаких механизмах

Alex Фэils?︙
19.10.2016
06:25:46
В любом случае прога покрэшится: либо ОСь откажет в выдаче памяти в куче, либо попросту обратится в вычищенный кусок. Если полагать, что прог много и все хотят памяти, лучше обеспечить работоспособность всех, ценой убийства одной. Об остальном пусть парится разраб.
Вот ты как осдев знаешь, что сишная программа умеет только маллок и фри, а ос ей просто мапит кусок памяти в виртуальное адресное пространство. Если у тебя внезапно выделенный кусок памяти через маллок станет невалидным без вызова фри, то это значит, что у тебя произошло то, что нарушает семантику этих функций

Egor
19.10.2016
06:26:53
Так ведь статистика обращений к страницам. Как узнаёт сборщик джавы? Отсутствие ссылок на объект, например.
И как это соотносится с си и плюсами? Может ты в память константную строку загнал, и что случится если её удалить?

Google
Alex Фэils?︙
19.10.2016
06:26:55
Ты можешь сделать свое апи в твоей микрооси, которое включит этот сборщик мусора, но при разработке софта надо будет учитывать этот факт

Egor
19.10.2016
06:28:43
Кстати, почему парятся людие о засранной памяти, delete, итд, если система отлавливает эти ситуации и при завершении программы попросту помещает страницы в список свободных?
не хочешь париться о засранной памяти - не используй си и плюсы, используй яву, питон или шарп, где есть сборщик. А есть ещё эмбедед направление, там не только о засранной памяти парятся, там даже о выделении памяти в процессе работы парятся, ибо в идеале и этого не должно быть.

Тогда к этой строке будут обращаться.
раз в день, когда приходит отчёт от железки, например?

Alex Фэils?︙
19.10.2016
06:32:20
раз в день, когда приходит отчёт от железки, например?
Вотпример. По статистике эта строчка будет вызываться редко, и ее в утиль отправит ос

Egor
19.10.2016
07:18:46
Тут Саттер рассказывает про "сборщик" на плюсах
там же всё на умных указателях, посчёте ссылок и без сборщика мусора как такового, вроде. Если я выступление не путаю.

Nikolay
19.10.2016
07:19:47
Ну да, но смысл то тот же - удаление объектов когда они уже не используются

Artem
19.10.2016
07:19:54
А ты хочешь, чтобы тебе рантайм ссылки считал, а не на уровне языка?

Google
Nikolay
19.10.2016
07:20:19
Только сборщик возвращает память как я понимаю, а тут деструкторы вызываются

Artem
19.10.2016
07:20:22
смысл любого gc тот же

Egor
19.10.2016
07:22:24
смысл сборщика в его отложенном вызове. наступает какой-то период и весь "мусор" с нулевыми ссылками удаляется скопом, а стратегия модерн плюс - удаление ровно в момент обнуления ссылки.

более точно управление временем жизни, меньше вопросов по освобождению памяти и всё такое.

это как бы не сборщик в том понимании, какое есть в яве или шарпе, это именно управление временем жизни объекта.

Artem
19.10.2016
07:24:13
но не такое управление жизнью объекта, как в расте!

Egor
19.10.2016
07:25:01
не знаком с растом, не могу сравнить :)

Artem
19.10.2016
07:25:16
https://doc.rust-lang.org/beta/book/lifetimes.html

(может показаться, что пунктуации в языке немного больше, чем нужно, да, это так)

Egor
19.10.2016
07:30:58
https://doc.rust-lang.org/beta/book/lifetimes.html
или я не понял синтаксиса, или там речь идёт только о статике, которая и может быть вычислена на этапе компиляции (так в плюсах можно то же самое), а не о динамике

Artem
19.10.2016
07:45:08
Нет. Раст просто умеет на этапе компиляции понимать больше, чем c++. То, что в С++ упадет в рантайме (давайте передадим овнершип unique_ptr куда-нибудь и потом вызовем еще раз), в расте не скомпилируется

Egor
19.10.2016
08:09:04
Нет. Раст просто умеет на этапе компиляции понимать больше, чем c++. То, что в С++ упадет в рантайме (давайте передадим овнершип unique_ptr куда-нибудь и потом вызовем еще раз), в расте не скомпилируется
auto pint1 = std::make_unique< int > (); auto pint2 = std::move( pint1 ); if ( pint1 ) *pint1 = 10; if ( pint2 ) *pint2 = 42; да, рантайм, но накладных расходов не больше чем с сырыми указателями, и да, если правильно писать не упадёт.

Aldar
19.10.2016
08:09:45
через лет 5 раст будет норм

Artem
19.10.2016
08:10:10
Если правильно писать, то и с сырыми не упадет, вопрос в количестве способов выстрелить в ногу

Artem
19.10.2016
08:11:10
Выстрелить в ногу? Возможно конечно

Egor
19.10.2016
08:13:04
я тут питон не могу доучить до нужной кондиции, а ещё и раст рекламируют...блин, где бы свободного времени взять чтоб всё новое учить и быть в потоке

Artem
19.10.2016
08:15:01
Раст пока что для энтузиастов

dmks
19.10.2016
08:16:02
Информацию фильтровать же надо, ну. Если учить все то можно слегка поехать

Artem
19.10.2016
08:16:15
Питон учить практичнее

Google
Artem
19.10.2016
08:16:21
Да и проще

Александр
19.10.2016
08:17:08
Информацию фильтровать же надо, ну. Если учить все то можно слегка поехать
Все сразу не получится в любом случае. Закипит голова

Egor
19.10.2016
08:17:15
Да и проще
ой ли, я прифигел от отрицатьльных индексов списков...вот кто такое выдумал, и нафига?

Artem
19.10.2016
08:17:29
Очень удобно

Egor
19.10.2016
08:18:00
Очень удобно
например?

Artem
19.10.2016
08:18:09
Обычно это либо -1, либо слайс, описывающий суффикс

Типа, x[-3:]

Aldar
19.10.2016
08:20:28
питон же простой

Artem
19.10.2016
08:20:45
Вот да

Aldar
19.10.2016
08:20:58
мне как то надо было писать на нем, прочитал туториал и вперед) правда были скрипты простенькие

Egor
19.10.2016
08:21:08
Типа, x[-3:]
вопрос не в этом, а в том, зачем так? почему не обычной практикой от нуля в плюс.

почему вообще понадобились отрицательные индексы

Artem
19.10.2016
08:21:45
Не очень простое только всякое метапрограммирование и асинхронность на корутинах, тут надо понять вначале

Меньше кода - лучше читаемость

Egor
19.10.2016
08:23:16
больше бекграунда для трансляции - ниже скорость, не?

Artem
19.10.2016
08:23:24
Пфф

Admin
ERROR: S client not available

Artem
19.10.2016
08:23:42
Скорость чего?

Egor
19.10.2016
08:24:42
выполнения кода. в плюсах, в определённых ситуациях даже for( int i... может быть медленее чем for( size_t i... при прочих равных.

Google
Egor
19.10.2016
08:25:41
для инта потребуется вставка кода проверки диапазона отрицательных значений, сайз_ти - не требует. так себе пример, но всё же

Artem
19.10.2016
08:25:50
Отрицательные индексы превращаются в положительные одним преобразованием на уровне аст, это вообще ни на что не влияет

Но

В питоне не занимаются такой оптимизацией, о которой ты говоришь

Почти всегда тормоза вызываются I/O, базой, сетью

А супер оптимизированные горячие куски кода либо пишутся расширениями на си(++)

Либо если уж хочешь питон, то выполняются в PyPy

А там JIT сам тебе все оптимизирует лучше, чем ты руками

Если твой код не кривой на уровне алгоритма

Egor
19.10.2016
08:31:17
у меня видимо сильная проф.деформация на фоне плюсов ))) ладно, расслаблюсь и буду читать дальше ?

Artem
19.10.2016
08:31:35
Да, все именно так)

Aldar
19.10.2016
08:35:01
хехе, питон это не про скорость выполнения

Nikolay
19.10.2016
08:43:45
Скорее про скорость написания )

Egor
19.10.2016
08:57:00
>все новое >питон
для меня - новое, я ж его не знаю ?

Aldar
19.10.2016
09:00:17
а другой скриптовый язык знаешь?

Egor
19.10.2016
09:02:06
а другой скриптовый язык знаешь?
bash, lua, vbscript для MSWin не в совершенстве, но именно как скриптописалки.

Andrey
19.10.2016
09:02:37
нафлудили-то )

$continue$
20.10.2016
08:53:19
Что делает enable_if? В документации нихуя не понятно :(

Anatoly
20.10.2016
09:09:26
имхо, это в супапро.схх

Google
Andrey
20.10.2016
09:12:09
Vladimir
20.10.2016
09:30:26
Что делает enable_if? В документации нихуя не понятно :(
Ломает компиляцию, если условие ложно. )

Alex Фэils?︙
20.10.2016
09:33:37
Vladimir
20.10.2016
09:33:46
Можно использовать как аргумент по-умолчанию в шаблоне, если нужно ограничить диапазон типов, с которыми оный шаблон можно использовать. Примерно так template <typename T, typename = typename std::enable_if(std::is_assignable<T, std::string>>

Страница 340 из 2477