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

Eto
01.10.2018
20:02:02

Pavel
01.10.2018
20:03:02

Google

Eto
01.10.2018
20:03:32

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

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

Maxim
02.10.2018
07:20:06

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

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

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

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

Denis
02.10.2018
17:11:05
оттуда с сайта
сам такое писал лет 15 назад