@dlangru

Страница 703 из 719
Pavel
01.10.2018
20:01:10
Да вот хз. Я пытаюсь это и понять. А то много раз слышал в контексте что стек предпочтительнее
Да я тоже не понял что такое скорость доступа. Как куча так и стек это всего лишь куски оперативной памяти и доступ к ним совершенно одинаков.

Но в куче предварительно надо выделить себе память с помощью целого вызова функции. А потом еще и подчистить.

Pavel
01.10.2018
20:03:02
И мне не понятно почему. Что мешает на стеке хранить только указатели на данные и все
Мешает то что стек у тебя сотрется при ближайшем выходе из функции и все данные в нем пропадут.

Google
Ievgenii
01.10.2018
21:47:49
А можно как то замерить скорость доступа к объектам на стеке и на куче? Предположим я не верю что стек быстрее
На счёт доступа не уверен, но на счёт создания объекта (структуры) на стеке и в куче есть разница

На стеке гораздо быстрее выходило

Maxim
02.10.2018
02:09:17
Скорость «доступа к объекту» будет ниже в том случае, если вызывается виртуальный метод, и по таблице нужно решить, чего вызывать

И это не зависит от стека или кучи)

https://dpaste.dzfl.pl/2fba1bcf0d69 такие вот неутешительные результаты по поводу создания структур и классов. Даже scoped не спасает классы от проседания производительности

Karbin
02.10.2018
05:06:02
ещё можно посмотреть создание объектов через std.allocators. например, если большой кусок выделить и уже в нём штамповать объекты

Igor
02.10.2018
05:41:19
https://dpaste.dzfl.pl/2fba1bcf0d69 такие вот неутешительные результаты по поводу создания структур и классов. Даже scoped не спасает классы от проседания производительности
ну структуры в куче тоже не быстро создаются. Это скорость создания в куче проседает а не классы, а там уже не так важно что. Вот со scoped непонятно

Maxim
02.10.2018
05:45:13
там много кода выполняется

scoped создает статический массив, достаточный для размещения там объекта, а потом emplace-ит туда объект

по сути, scoped — это всего лишь гарантия, что объект будет удален как только выйдет из области видимости, и не более

Igor
02.10.2018
05:47:04
ну этот-же код выполняется и во время new?

Maxim
02.10.2018
05:47:30
ахз, так глубоко я не забирался, скорее всего, да

Google
Igor
02.10.2018
05:49:52
тогда должна была бы быть разница по времени между созданием обьекта через new и на стеке. Template std.typecons.scoped Allocates a class object right inside the current scope, therefore avoiding the overhead of new.

Maxim
02.10.2018
05:54:23
что-то они втирают какую-то дичь)

Igor
02.10.2018
07:11:36
хех https://www.techempower.com/benchmarks/#section=data-r16&hw=ph&test=update&l=hra0dz

Valeriy
02.10.2018
07:16:35
А можно как то замерить скорость доступа к объектам на стеке и на куче? Предположим я не верю что стек быстрее
Можно в цикле разместить 1000000 объектов в куче и на стеке и замерить производительность. Только опции -O оптимизатора надо выыключить, что бы одним куском не выделело.

Обращение к памяти по указателю — достаточно быстрое да. и тут действительно не будет заметной просадки производительности. А вот выделение памяти — это долго. Особенно много мелких кусков. ОС нужно ещё и за фрагментированием следить.

Valeriy
02.10.2018
07:21:52
собственно, вот)
А ну да, вот хорошо видно :)

Dmitry
02.10.2018
08:18:13
@valmat спасибо попробую дома

Pavel
02.10.2018
11:23:01
https://www.monkeyuser.com/assets/images/2018/107-applied-tdd.png

Eto
02.10.2018
11:24:32
?

Ievgenii
02.10.2018
11:29:30
)))

Ackeard
02.10.2018
12:19:19
про стек и кучу. стек считается быстрее потому что проц его может закешировать. а вот вероятность того что куча объйектов разбросанных по памяти попадёт в одну страницу кэша меньше. я не то чтобы спец в кэшах проца, но вот такие изречения слышал. и звучит логично

вектор объектов обработается быстрее чем вектор указателей на объекты. как раз из за кэша

https://habr.com/post/93263/

первый пример

Eto
02.10.2018
12:24:24
https://stackoverflow.com/questions/17924705/structure-of-arrays-vs-array-of-structures-in-cuda#17924782

Dmitry
02.10.2018
12:24:33
А адрес для стека и его размер выбираются сообразно с чем?

Eto
02.10.2018
12:24:35
Первый ответ.

Dmitry
02.10.2018
12:25:05
@sigod пасибо, я как только с работой разгребусь сяду читать и пробовать

Eto
02.10.2018
12:32:12
Примерно так: модуль памяти возвращает процессору больше байт, чем нужно. И если последующие операции должны производиться над данными, которые уже пришли в этом пакете, то заново запрашивать не надо.

Google
Denis
02.10.2018
15:54:59
opEquals из классов выпилили?

source/core/user.d(73,17): Error: function bool core.user.UserCRM.opEquals(UserCRM r) does not override any function, did you mean to override bool object.Object.opEquals(Object o)?

wtf? раньше всё работало

Pavel
02.10.2018
15:56:51
Так надо 2 аргумента а у тебя 1

Denis
02.10.2018
15:57:15
If overridding Object.opEquals() for classes, the class member function signature should look like: class C { override bool opEquals(Object o) { ... } }

https://dlang.org/spec/operatoroverloading.html

Pavel
02.10.2018
15:57:56
хм да там 2 аргумента

В общем не знаю

Denis
02.10.2018
15:58:10
один если внутри класса пишешь

override лишний был

Pavel
02.10.2018
16:01:10
А, там типа статическая проверка

Denis
02.10.2018
16:02:26
а нет, override надо

если Object в аргументе написать то работает

ппц

пишут что надо кастовать

они куку, а как я тип узнаю в который надо кастовать?!

Pavel
02.10.2018
16:13:51
Well... that's D...

Denis
02.10.2018
16:14:07
надо пример использования найти

во всём фобосе использовано 2 раза

лол

Google
Dark
02.10.2018
16:34:34
Когда знакомишься с ди, думаешь, что это лучший яп

Спустя полгода

они куку, а как я тип узнаю в который надо кастовать?!

Valeriy
02.10.2018
16:49:43
Когда знакомишься с ди, думаешь, что это лучший яп
А нет никакого лучшего. D хорош, но есть странные вещи.

Denis
02.10.2018
16:50:25
странно почему так сделано

можно конечно свой метод использовать

обусловиться с названием и всё, но странно

хотелось бы объяснения этого где-то в учебнике

Igor
02.10.2018
16:51:36
cast(typeid(this)) не работает?

Valeriy
02.10.2018
16:51:37
В D кстати это такая проблема с кастованием. Неявное приведение иногда полезно бывает

Igor
02.10.2018
16:52:19
МММ не помню точно какой из вариантов

Может и typeof

Oleg
02.10.2018
16:55:11
видели такую тему? http://podkorytov.com/

вроде web server на D

но чёт на github этого чела я не могу найти код самого сервера

August of 2018 First design, benchmarking and comparation with NGINX on high load show that my web server works faster and have less losts. Also it needs about 10 times less memory than NGINX.

хммм

Valeriy
02.10.2018
16:59:41
видели такую тему? http://podkorytov.com/
Там только бинари можно скачать. Исходников нет.

Google
Maxim
02.10.2018
17:00:13
и всё на рунглише написано, что-то подозрительно

Valeriy
02.10.2018
17:01:15
И ещё непонятно зачем yet another вебсервер

и всё на рунглише написано, что-то подозрительно
Английский с акцентом? Как ты определил?

Oleg
02.10.2018
17:02:05
ну так ведь

August of 2018 First design, benchmarking and comparation with NGINX on high load show that my web server works faster and have less losts. Also it needs about 10 times less memory than NGINX.

в 10 раз!! меньше памяти

Maxim
02.10.2018
17:02:31
Английский с акцентом? Как ты определил?
works faster and have less losts — прямая калька с «работает быстрее и имеет меньше потерь»

Denis
02.10.2018
17:04:11
DNS VPN?

Oleg
02.10.2018
17:04:55
вообще странный какой-то сайт

Pavel
02.10.2018
17:05:00
https://www.techempower.com/benchmarks/#section=data-r16 - этому можно доверять?

Denis
02.10.2018
17:05:27
вообще странный какой-то сайт
обычный гиковский сайт

сгенерён небось

Oleg
02.10.2018
17:06:38
обычный гиковский сайт
зачем делать такие громкие заявления (с цифрами) без сравнений? зачем говорить что сайт сейчас пытаются ломать?

Pavel
02.10.2018
17:07:15
А смысл?
определиться человеку не в теме

Denis
02.10.2018
17:07:36
json не про скорость же

Pavel
02.10.2018
17:08:14
там вроде разные номинации

Dark
02.10.2018
17:10:38
DNS VPN?
Откуда фраза?

Denis
02.10.2018
17:11:05
оттуда с сайта

сам такое писал лет 15 назад

Страница 703 из 719