@gogolang

Страница 1169 из 1630
Kirill
20.06.2018
17:13:54
разница в 256733 строк)
я бы попросил у тебя пример такого файла

разница в 256733 строк)
локально у меня работает норм

Алексей
20.06.2018
17:14:23
плюс ещё есть сам массив, и можно довольно легко менять массив сразу из нескольких мест

и тогда вполне может наступить веселье

Google
Алексей
20.06.2018
17:14:56
поэтому аккуратно надо с ними работать

Kirill
20.06.2018
17:15:42
Алексей
20.06.2018
17:15:48
либо всегда делать только один слайс созданный make

Jack
20.06.2018
17:15:50
вообще я выбирал эты мыла с файлика побольше регекспом regexp.MustCompile("[^,]+@[^,]+\\.[^,]+")

Jack
20.06.2018
17:16:08
и писал тем же макаром out.WriteString(line + "\n")

Kirill
20.06.2018
17:16:50
(когда случайно положил себе редактор %))

ты не поверишь

список обработался нормально

Google
Jack
20.06.2018
17:19:32
Kirill
20.06.2018
17:19:36
Sergey
20.06.2018
17:19:40
передавай копию!
а как же..... ХАЙ ПЕРВОРМАНС....

Jack
20.06.2018
17:19:57
у меня линукс

Lesha
20.06.2018
17:20:02
а как же..... ХАЙ ПЕРВОРМАНС....
тогда не передавай большие слайсы

Kirill
20.06.2018
17:20:18
а как же..... ХАЙ ПЕРВОРМАНС....
хочешь гарантию без передачи копии - PROT_READ

Daniel
20.06.2018
17:20:23
а как же..... ХАЙ ПЕРВОРМАНС....
а ты его мерял, перформанс? мерял?! далее копипаста про бобруйск...

Kirill
20.06.2018
17:20:23
у меня линукс
у меня тоже. и?

Jack
20.06.2018
17:20:54
у меня тоже. и?
хз) может винда любит \r\n

Kirill
20.06.2018
17:21:13
хз) может винда любит \r\n
любит. а при чем она здесь?

Sergey
20.06.2018
17:21:13
Jack
20.06.2018
17:21:38
любит. а при чем она здесь?
ну думаю че за магия

Kirill
20.06.2018
17:22:02
и это секурно считается?
ну - при попытке изменения SiGSEGV вылетит

Мерлин
20.06.2018
17:22:19
а как же..... ХАЙ ПЕРВОРМАНС....
без бечмарков говорить не о чем и вообще, в большинстве случаев удобство важнее производительности

Kirill
20.06.2018
17:23:04
одобряю
с учётом портабельности кода с таким хаком - не особо хорошая идея.

Sergey
20.06.2018
17:23:17
без бечмарков говорить не о чем и вообще, в большинстве случаев удобство важнее производительности
> без бечмарков говорить не о чем максимум Copy on Write > в большинстве случаев удобство важнее производительности да, но.. почему бы не сделать указатели на иммутабельные данные?

Daniel
20.06.2018
17:23:34
потому, что это сложно

реально сложно добавить это в язык

Google
Alexander
20.06.2018
17:24:01
потому, что это сложно
Это проще, чем без них, с точки зрения пользователя

Kirill
20.06.2018
17:24:18
Alexander
20.06.2018
17:24:33
так пойди и напиши, чё
С точки зрения пользователя языка

Kirill
20.06.2018
17:24:37
я из-за этого на месяц взял отпуск от разработки гудланга

Sergey
20.06.2018
17:24:43
> максимум Copy on Write что "максимум Copy on Write"?
максимум оптимизации, которую сделает компилятор (по сравнению с `const &`), это CoW

если данные не изменяются, то всё норм, всё быстро

но тут же про саму возможность изменить данные, переданные по указателю

Мерлин
20.06.2018
17:25:39
> без бечмарков говорить не о чем максимум Copy on Write > в большинстве случаев удобство важнее производительности да, но.. почему бы не сделать указатели на иммутабельные данные?
> почему бы не сделать указатели на иммутабельные данные? Go сейчас спроектирован таким образом, что добавить почти любую плюшку без поломки обатной совместимости очень сложно. А обратная совместимость — это главный фетиш разработчиков языка

Jack
20.06.2018
17:26:07
список обработался нормально
скинь результат плиз)

Kirill
20.06.2018
17:26:13
осталось на сегодня ещё один извечный холивар

Sergey
20.06.2018
17:26:17
Kirill
20.06.2018
17:26:27
джжжжжеееенееееее...

Мерлин
20.06.2018
17:26:32
?

Kirill
20.06.2018
17:27:11
ща зобаню
эхехехехе

Мерлин
20.06.2018
17:28:20
в общем, это тот же старый спор про иммутабельные данные в го
я пришёл к тому, что часто создаю кастомные типы для коллекций Например, type FooList []Foo и реализую для них наборы методов, чаще всего Copy, Filter и проч

Kirill
20.06.2018
17:30:33
я пришёл к тому, что часто создаю кастомные типы для коллекций Например, type FooList []Foo и реализую для них наборы методов, чаще всего Copy, Filter и проч
Sort, Map, ForEach, Includes, Find, Concat, CopyWithin, Entries, Every, Fill, FindIndex, FlatMap, Flatten, IndexOf, Join, Keys(), LastIndexOf, Pop, Push, Reduce, ReduceRight, Reverse, Shift, Slice, Some, Splice, ToLocaleString, ToSource, ToString, Unshift и Values? :))

Google
Мерлин
20.06.2018
17:31:19
Sort, Map, ForEach, Includes, Find, Concat, CopyWithin, Entries, Every, Fill, FindIndex, FlatMap, Flatten, IndexOf, Join, Keys(), LastIndexOf, Pop, Push, Reduce, ReduceRight, Reverse, Shift, Slice, Some, Splice, ToLocaleString, ToSource, ToString, Unshift и Values? :))
Неа, у меня простая эвристика: если применил какую-то операцию два и более раз, и знаю, что понадобится ещё раз, то выношу ещё в метод

Daniel
20.06.2018
17:31:50
да ладно

вот прям "никак"

Kirill
20.06.2018
17:32:01
Так это, Map и Reduce без дженериков никак
дык для каждого отдельного типа коллекции

Daniel
20.06.2018
17:32:09
кодогенерацию отменили, наверное

Admin
ERROR: S client not available

Kirill
20.06.2018
17:32:18
руки отрезают за такое

и по самые дженерики

Мерлин
20.06.2018
17:32:42
Чаще всего это Copy и Filter, получение списка значений каких-нибудь полей (например Names), преобразование в Set например или преобразование в слайс другого типа

Alexander
20.06.2018
17:33:27
да ладно
Ну да, у мапа же тип - map :: [a] -> (a -> b) -> [b]

Мерлин
20.06.2018
17:33:49
кодогенерацию отменили, наверное
ну будем честны, для кодогенерации чего-нибудь типа Copy нужен сильно умный кодогенератор и потом, мне кажется инфрастуктура кодогенераторов на го не то чтобы мертва, её просто нет

go away()
ыхыхых

Alexander
20.06.2018
17:34:55
Ну да, у мапа же тип - map :: [a] -> (a -> b) -> [b]
Ну как вариант для каждого отображения в каждый тип отдельный Map генерить. MapToString, MapToInt и т.д..

Daniel
20.06.2018
17:35:04
имано

Мерлин
20.06.2018
17:35:04
да ладно тебе, вот прям сильно умный
ну ладно, не прямо умный, но всё таки есть нюансы

Google
Мерлин
20.06.2018
17:36:56
Copy() вообще можно и в рантайме делать, если производительность позволяет
с одной стороны да с другой стороны на самом деле было бы хорошо впилить в Go ковариантность-контравариантность для интерфейсов это не сломало бы обратную совместимость, но позволило бы сделать интерфейс Copy например

и это безо всяких дж

хотя там тоже блин есть нюансы

Kirill
20.06.2018
17:38:10
и их будет больше

изначально ковариантность - способ переноса наследования типов на производные типы

а у нас наследования-то по большому счёту нет

тут значит потребуется концепцию дорабатывать

Kirill
20.06.2018
17:40:09
чтобы она всё-таки была более применимой к го

я могу назвать три языка, где есть ковариантность

Kirill
20.06.2018
17:41:04
Мерлин
20.06.2018
17:41:17
зачем?
просто сделать простейший вариант что-то типа var foo func(io.Reader) fmt.Stringer = func(*bytes.Buffer) *bytes.Buffer

Kirill
20.06.2018
17:42:14
а чем текущая не устраивает?
тем, что не ясно, как её в конце концов вкручивать в язык

Никита
20.06.2018
18:00:07
Есть такой результат pprof

Кто нибудь может обьяснить, как это вообще читать?)

Исходя из него я не могу понять что сколько времени занимает

Kirill
20.06.2018
18:01:57
видимо, частота опроса раз в 10мс

Страница 1169 из 1630