
Dmitry
18.05.2017
15:06:48
просто хотел проверить ввел ли пользовать в качестве аргумента командной строки 0 или нет.

Denis
18.05.2017
15:09:57

Dmitry
18.05.2017
15:10:51
погоди, это как?

Andrey
18.05.2017
15:29:18
в std.typecons шаблон. судя по примерам, подойдет

Google

Dmitry
18.05.2017
18:20:59
а можешь пример показать? А то что то не пойму как юзать

Andrey
18.05.2017
18:23:39
ну вот например
Nullable!int x;
assert(x.isNull);
x = 42;
writeln(x);
int y = 42;
assert(x == y);

Dmitry
18.05.2017
18:24:57
спасибо, а этот модуль std.typecons он вообще для чего предназначен? Я его суть не совсем понимаю

Andrey
18.05.2017
18:28:14
ну вот для этого и предназначен) Nullable и всякие разные полезные штуки. tuple например, еще чего там...
реализует общеупотребимые сушности. подробней не скажу, та как я D две недели как изучаю)

Ievgenii
18.05.2017
20:07:18
Сравнивал Го и Ди
vibe.d
Так Ди хорошо течёт....
Лефолтный пример
*дефолтный
А так на равне
Но Вайб прожорлив по памяти, + течёт :(

Oleg
18.05.2017
20:15:14

Google

Oleg
18.05.2017
20:21:47
У меня уползало до 700 лишних метров (потом останавливался), пока эту волшебную строчку не добавил, в итоге прога ела 40 мб (с гномом)

Ievgenii
18.05.2017
20:41:34
Я просто взял предлагаемый скелетон для вайб
И скомпилировал его
Потом ab -c 200 -n 100000
И так несколько раз запускал
В итоге каждый запуск растет
А там всего то hello world!!!!

Oleg
18.05.2017
21:03:08
мне кажется так и должно быть
вайб жирная библиотека, вот если бы ты простой код с выделением памяти позапускал и у тебя бы память уползла, то тут вопрос, конечно, был бы
а так там политика достаточно жидкая: пока "нормально всё" — выделять

Max
18.05.2017
21:31:11
В итоге каждый запуск растет
В D сборщик запускается только когда память заканчивается, в отличие от го, где тот работает нонстоп. Так что либо дёргай руками, либо забей.

Ievgenii
18.05.2017
22:12:47
А он течёт. Даже в таком приложении, где нет бизнес логики
В D сборщик запускается только когда память заканчивается, в отличие от го, где тот работает нонстоп. Так что либо дёргай руками, либо забей.
Это тоже не корректно. Если на компе запущено 2 приложения, допустим, и первое сожрало почти все, а после какого-то момента более активнее начинает работать второе, а первое простаивает, но при этом сожрало много памяти, то оно не и не отпустит, так как и не знает, что эту память нужно освободить, т.к. в ней нуждается другое приложение


Oleg
18.05.2017
22:46:22
Это тоже не корректно. Если на компе запущено 2 приложения, допустим, и первое сожрало почти все, а после какого-то момента более активнее начинает работать второе, а первое простаивает, но при этом сожрало много памяти, то оно не и не отпустит, так как и не знает, что эту память нужно освободить, т.к. в ней нуждается другое приложение
с какой точки зрения не корректно? да и вроде не так всё просто. приложение может запустить сборщик "принудительно" по сигналу (SIGUSR1 или SIGUSR2 не помню), поэтому система или внешнее контролирующее приложение может сказать, что "хватит жрать"
и кстати его настраивать ещё можно


Ievgenii
18.05.2017
22:49:14
Может и можно
Но не должен скелетонный пример течь!
А он течет

Google

Oleg
18.05.2017
22:50:19
да блин, с чего ты взял?)

Ievgenii
18.05.2017
22:50:22
И безбожно течет

Oleg
18.05.2017
22:50:34
проверять валгиндом бесполезно
он будет показывать выделения, а сборку нет

Ievgenii
18.05.2017
22:51:18
Я вижу, что приложение жрет много памяти

Oleg
18.05.2017
22:51:25
и термин "утечка памяти" всё-таки подразумевает, что ты не можешь её высвободить и она занимает место, здесь ты можешь высвободить

Ievgenii
18.05.2017
22:51:47
А точно такой же пример 1 в 1 на ГО не течёт... :(

Oleg
18.05.2017
22:52:12
кароч ок, пусть течёт)
от прямоты рук в целом всё зависит, а vibe не эталон в этом плане

Ievgenii
18.05.2017
22:53:11
Читаем

Oleg
18.05.2017
22:53:59
читаем
связанный с ошибками в работающих программах, вовремя не освобождающих ненужные уже участки памяти

Ievgenii
18.05.2017
22:54:12
Да
И?

Oleg
18.05.2017
22:54:16
если тебе срочно, то вызови сборку руками
сборщик считает, что ещё не время

Ievgenii
18.05.2017
22:54:35
Вовремя!

Oleg
18.05.2017
22:54:37
проблема в понимании отсутствия проблемы
а что значит вовремя?
как только так сразу?

Google

Ievgenii
18.05.2017
22:55:02
Ты сказал, что это не утечка, я тебе показал, что это именно утечка

Oleg
18.05.2017
22:55:15
я по прежнему считаю что это не утечка
потому что "вовремя" для тебя не является эталоном "вовремя" для других

Ievgenii
18.05.2017
22:55:50
Ну можешь, конечно, считать...
https://github.com/rejectedsoftware/vibe.d/issues/924

Oleg
18.05.2017
22:56:26

Ievgenii
18.05.2017
22:56:38
И к чему это?

Oleg
18.05.2017
22:57:08
моё личное мнение, что vibe это дерьмо и ставить его как лицо языка нельзя

Admin
ERROR: S client not available

Oleg
18.05.2017
22:57:21
дерьмо потому что подход к разработке такой

Ievgenii
18.05.2017
22:57:22
У меня кривые руки, что я запустил пример от самого фреймворка и он течёт? О.о

Oleg
18.05.2017
22:57:35
ты до конца прочитал?

Ievgenii
18.05.2017
22:58:01
Да

Oleg
18.05.2017
22:58:04
от прямоты рук в целом всё зависит, А VIBE НЕ ЭТАЛОН В ЭТОМ ПЛАНЕ
а претензия к алгоритму сборки

Ievgenii
18.05.2017
22:58:54
Это не притензия к сборщику
А констатация факта утечки...

Oleg
18.05.2017
22:59:13
тогда я тебя не понял
сорян

Google

Ievgenii
18.05.2017
22:59:53
Руками вызывать сборщик - дороговато...

Oleg
18.05.2017
23:00:05
в каком смысле дороговато?

Ievgenii
18.05.2017
23:00:13
В прямом

Oleg
18.05.2017
23:00:24
а как тогда не дороговато?

Ievgenii
18.05.2017
23:00:25
Это блокирующее действие

Oleg
18.05.2017
23:00:34
а по другому не блокирующее?

Ievgenii
18.05.2017
23:00:38
Удалять руками за собой

Oleg
18.05.2017
23:00:41
остановка мира в го?
руками тоже можно, но мы возращаемся к С++ в этом случае

Ievgenii
18.05.2017
23:01:12
Удалять объекты, которые создаёшь...

Oleg
18.05.2017
23:01:17
ну да

Ievgenii
18.05.2017
23:01:22
Не совсем

Oleg
18.05.2017
23:01:24
удаляешь как попользовался
прям как в С++
любой сборщик несёт те или иные накладные расходы или проблемы

Ievgenii
18.05.2017
23:02:13
Это нормально, если ты знаешь, что объект тебе более не нужен - удали его

Oleg
18.05.2017
23:02:46
в чём тезис? никто не спорит что это эффективно с точки зрения производительности
но вот накладных расходов просто жесть сколько от этого

Ievgenii
18.05.2017
23:03:02
А в фреймворке такое грубое принебрижение памятью - это недопустимо

Oleg
18.05.2017
23:03:34
человеко-часы разработки/отладки

Ievgenii
18.05.2017
23:04:01
Ну не знаю...