- Можн както ускорить вызо C из Go?, ыы, 15:43 , 19-Фев-22 (1)
>[оверквотинг удален] > fn main() { > let mut x: i32 = 0; > for i in 0..1000_000_000 { > unsafe { > > x = print_num(i); > } > } > println!("{}", x); > } go build main.go main.go:2:1: expected 'package', found 'func'
- Можн както ускорить вызо C из Go?, Bobik, 16:22 , 19-Фев-22 (2)
>[оверквотинг удален] >> for i in 0..1000_000_000 { >> unsafe { >> >> x = print_num(i); >> } >> } >> println!("{}", x); >> } > go build main.go > main.go:2:1: expected 'package', found 'func' Это код на rust, он тут как "еталон" по скорости вызова c/c++ кода из других языков.
- Можн както ускорить вызо C из Go?, ыы, 18:44 , 19-Фев-22 (3)
>[оверквотинг удален] >>> >>> x = print_num(i); >>> } >>> } >>> println!("{}", x); >>> } >> go build main.go >> main.go:2:1: expected 'package', found 'func' > Это код на rust, он тут как "еталон" по скорости вызова c/c++ > кода из других языков.А это - go build процесс компиляции а не время рунтайма вы сравниваете время компиляции?
- Можн както ускорить вызо C из Go?, Bobik, 20:25 , 19-Фев-22 (4)
>[оверквотинг удален] >>>> println!("{}", x); >>>> } >>> go build main.go >>> main.go:2:1: expected 'package', found 'func' >> Это код на rust, он тут как "еталон" по скорости вызова c/c++ >> кода из других языков. > А это - > go build > процесс компиляции а не время рунтайма > вы сравниваете время компиляции?Сравниваю время выполнения, "go build main.go" пример как компилировал, возможно есть флаги оптимизации которые ускорят. В интернете пишут что gccgo может собрать более быстрый бинарник но не в етом случае, у меня получилось в разы хуже.
- Можн както ускорить вызо C из Go?, ыы, 22:09 , 19-Фев-22 (5)
>[оверквотинг удален] >>> Это код на rust, он тут как "еталон" по скорости вызова c/c++ >>> кода из других языков. >> А это - >> go build >> процесс компиляции а не время рунтайма >> вы сравниваете время компиляции? > Сравниваю время выполнения, "go build main.go" пример как компилировал, возможно есть флаги > оптимизации которые ускорят. В интернете пишут что gccgo может собрать более > быстрый бинарник но не в етом случае, у меня получилось в > разы хуже.Посмотрите на хабре статью по теме. Есть технические причины почему вызов С функций из Go такой медленный. И похоже это не лечится. Да и надо ли? Зачем инклюдить в исходник С-код?
- Можн както ускорить вызо C из Go?, Bobik, 00:55 , 20-Фев-22 (6)
> Посмотрите на хабре статью по теме. > Есть технические причины почему вызов С функций из Go такой медленный. И > похоже это не лечится.В целом понятно почему так медленно, думал может кто подскажет как ускорить. >Да и надо ли? Былобы не плохо, например для использования rocksdb > Зачем инклюдить в исходник С-код? Тут мне сложно ответить так как я не понял вопрос, просто выше опущены некоторые моменты по компиляции и линковке. С-код компилируется gcc в обектный файл а потом линкуется с скомпилированым кодом go или rust. Инклудов там никаких нет, можно было слинковать уже с существующей в системе библиотекой, но мне так проще было сделать.
- Можн както ускорить вызо C из Go?, Брат Анон, 12:34 , 07-Ноя-22 (7)
> В целом понятно почему так медленно, думал может кто подскажет как ускорить. Нет, это никак не ускоряется. Вызовы в Си чудовищно дорогие. Меньше дёргайте Си. > Былобы не плохо, например для использования rocksdb Передавайте жирные блобы. >> Зачем инклюдить в исходник С-код? > Тут мне сложно ответить так как я не понял вопрос, просто выше > опущены некоторые моменты по компиляции и линковке. Вы не поняли вопроса. Зачем вам в Го -- Си? Вы ломаете безопасность типов и инварианты памяти. > С-код компилируется gcc в обектный файл а потом линкуется > с скомпилированым кодом go или rust. Инклудов там никаких нет, можно было > слинковать уже с существующей в системе библиотекой, но мне так проще > было сделать.
Вопрос не про линковку. Вопрос про то, что Си для Го -- совершенно неродной. Вы пытаетесь есть суп вилкой.
|