nvkv
redbeard
http://alvinalexander.com/photos/parallelism-vs-concurrency-programming
redbeard
вот что пишут
Kirill
Запусти hello world под strace
я знаю как минимум 3 способа написать хелло ворлд, так что результат может быть разным. покажи какой конкретно код.
Kirill
ага. сейчас посмотрю почему столько жрет.
Kirill
версия гошки какая?
Ruslan
hello world должен быть 1.6мб
Kirill
Ruslan
Ruslan
https://blog.golang.org/go1.7-binary-size
Kirill
отлично. мы не о размере бинаря от слова совсем.
Ruslan
а
Ruslan
:D
Kirill
о, js'еры подошли
Ruslan
noir то?
Kirill
йеп
Daniil
чего обзываться сразу
Ruslan
Привет :)
Kirill
привет
Kirill
чего обзываться сразу
ну -- из пяти чатов, в которых сидим мы оба, три -- js'ерские, один этот и один с вакансиями
Kirill
1.8
угу. а os/arch?
Roman
угу. а os/arch?
linux. amd64 и mips
Anonymous
arm7h, 1,2mb бинарь получился хеллоworld'а
Anonymous
go 1.8
Anonymous
А чем меряемся?
Roman
Откуда столько не умеющих читать?
Roman
А чем меряемся?
strace -F -e mmap ./hello | head -n5
Anonymous
strace -F -e mmap ./hello | head -n5
Написало три раза pid ... attached Потом hellow world Потом три раза pid ... exited with 0
Anonymous
Наверн не то, чем мы меряемся :)
Roman
Память то оно как-то аллоцирует
Roman
И для бинаря в 1мб должен быть mmap, а не brk
Anonymous
А если без -e mmap ?
Уфф, много чего выплюнуло в консоль
Anonymous
Вот такого куча строк rt_sigaction(SIGRT_27, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGRT_27, {sa_handler=0x5b6f0, sa_mask=~[],
Anonymous
Как же сложно меряться 😄
Anonymous
andrew@bananapi /tmp % strace -F ./tmp | head -n5 execve("./tmp", ["./tmp"], [/* 32 vars */]) = 0 getpid() = 11928 sched_getaffinity(0, 8192, [0, 1]) = 4 mmap2(0x200000, 807411712, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x200000 mmap2(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f4d000 clock_gettime(CLOCK_MONOTONIC, {tv_sec=69070, tv_nsec=531351823}) = 0 mmap2(0x10400000, 1048576, PROT_READ|PROT_WRITE,
Roman
вообщем, боль вот в чем:
Anonymous
Так точно
Roman
mmap2(0x200000, 807411712, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x200000
Roman
и у меня:
Roman
mmap2(0x16bb0000, 25493504, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x16bb0000
Anonymous
Прошу для неграмотных объяснить, где "боль".
engelbart
Память жалеют
Anonymous
Память жалеют
Смотрю в htop: RES: 8mb SHR: 5 mb Это типа много?
Anonymous
Или виртуальную память жалеют?
engelbart
на хелло ворлд же
Anonymous
Странно сравнивать языки по helloworld'ам...
engelbart
Да просто скучают люди. что уж тут за сравнения.
Roman
Или виртуальную память жалеют?
проблема простая: запуск этого самого hello world на openwrt с 32мб памяти получается только если основательно выкосить кучу модулей
Anonymous
Слабые устройства - это отдельный мир, где правит C (и страдают программисты).
Vladimir
Мне кажется в нише слабых устройств у Раста больше перспектив
Anonymous
Мне кажется в нише слабых устройств у Раста больше перспектив
Пробовал на винде helloworld на расте. Не порадовал ни объём бинаря, ни потребление памяти...
Anonymous
Забираю слова обратно, динамическая линковка - и бинарник 50кб.
engelbart
А кто знает просто путь сделать xml.Unmarshall для <?xml version="1.0" encoding="windows-1251"?> <data status="ok"><contract balance=.... в лоб оно не хочет FATAL ERROR: xml: encoding "windows-1251" declared but Decoder.CharsetReader is nil
Anonymous
Ваще распоясались, лень им гуглить стало. 😂
engelbart
Честно говоря я решил, и блин не отписал здесь.
engelbart
Но кто там у паддановов гуру ? Я забыл. Вобщем спасибо наставник!
Anonymous
> и страдают программисты лол
Пока сишники чистят за собой и рисуют заголовочные файлы, гоферы на расслабоне пишут код за чашечкой (или из чего там употребляют) смузи. (Мусор за гоферами убирает лично сам Роб Пайк).
分解物質
Ruslan
5+
Anonymous
(Здесь ещё должна была быть шутка про обработку исключений в C и Go, но я не смог её сформулировать)
Anonymous
В C нет исключений :)
А чо там тогда происходит при делении на ноль или ошибке доступа к файлу?
Mikalai
А чо там тогда происходит при делении на ноль или ошибке доступа к файлу?
При делении на 0 процессу приходит сигнал ( и по-дефолту, естественно, процесс умирает)
Mikalai
А при ошибке доступа к файлу соответствующая функция вернет нулевой указатель
Mikalai
Если его заюзать - сегфол
Anonymous
То есть в любом случае - немая смерть. Тут должна быть шуткп про количество смертей программ на C и Go. 😁
Anonymous
Так это же ещё больше проверок чем if err != nil !
Mikalai
Ну это же си. И не больше, а столько же :)
Roman
ну, я теперь с интересом смотрю на nim :)
Anonymous
запилите жс без родовых травм.