Alex
грубо говоря я работаю с тем же куском памяти но в другом представлении
Anonymous
технически как это должно чтот ускорить?)
Danila Matveev
Alex
ага, понял
Alex
let mut new_body = CString::new("body").unwrap(); packet.body = new_body; тут как то можно в одну строчку это записать?
Мерль
технически как это должно чтот ускорить?)
Ага Миграции нужны редко, по большей части размер тред стеков устаканивается на каком-то уровне и горутины весело перещёлкиваются внутри. При этом не нужно дёргать кучу на каждый чих, очень удобно и быстро
Anonymous
Решение для чего?
для всего, там ж куча на сегменты разбита) хитрее все
Anonymous
tokio сейчас не требует nightly?
Danila Matveev
tokio сейчас не требует nightly?
пока играюсь на стейбле и не было еще проблем
Danila Matveev
в доке у них есть странные вещи, которые я не встречал, но по примерам с гитхаба всё ок
Мерль
размер тред стеков всегда устаканен xD
Неа, шедулер умеет прикручивать недостающую память
Alex
хочу String + null terminated байт
Anonymous
Неа, шедулер умеет прикручивать недостающую память
я понял про что ты) для меня стек - это именно native thread stack, а не гошная астракция) я если честно даже не знаю, что там есть стек
Anonymous
гоу письками мериться
Anonymous
Shenandoah: Pause Init Mark 28.901ms Concurrent marking 1942G->2069120M(4194G) 3844.822ms Pause Final Mark 2069G->1639G(4194G) 136.814ms Concurrent evacuation 1639G->1837G(4194G) 6961.820ms Concurrent reset bitmaps 973.670ms
Anonymous
как там у go дела на хипи в 4т?)
Мерль
На 100гб начинаются проблемы, на самом деле
Anonymous
c latency ?
Мерль
хочу String + null terminated байт
У тебя в протоколе гоняются терминированные строки О_о
Alex
У тебя в протоколе гоняются терминированные строки О_о
Велосипед не мой, я всего лишь работаю с объявой
Мерль
c latency ?
Порядка меньше миллисекунды, пока процессора хватает (а процессор начиная с некоторых размеров хипа начинает жраться как не в себя)
Anonymous
нормально)
Мерль
нормально)
Но пропускная способность падает экспоненциально
Мерль
Впрочем, повторюсь, на кучах меньше сотни Гб всё очень приятно и хорошо. Короче, три стула, как обычно
Anonymous
все с пиками точеными
Мерль
(
Мерль
Велосипед не мой, я всего лишь работаю с объявой
А что за протокол, если не секрет?
Alex
https://developer.valvesoftware.com/wiki/Source_RCON_Protocol
Alex
хочу rcon консоль сам написать
Мерль
Здорово >_>
分解物質
что тебе не понятно?
это тебе что-то непонятно. компилятор go и его рантайм никак не используют pthread, как и любые другие сишные либы
分解物質
можешь грепнуть по сорцам
Anonymous
分解物質
https://github.com/golang/go/blob/80acfe950fce409477b9fae097696701a9ff66e3/src/runtime/cgo/libcgo_unix.h
это же cgo, используется только для ffi с сишными либами, и компилятор можно собрать без его поддержки
Anonymous
что значит зачем?
Anonymous
ты находишься внутри ос
分解物質
как будто pthread это единственный способ создания тердов
պլհկ
impl<T, E> IntoFuture for Result<T, E>
պլհկ
https://docs.rs/futures/0.1.14/futures/future/trait.IntoFuture.html
Anonymous
тоесть?
что не понятного, ты запускаешь процесс внтури ос
分解物質
для создания процесса можно использовать системные вызовы fork(), vfork() и clone()
分解物質
pthread_create() это обёртка над clone(), которая помимо прочих вещей выделяет стэк под новый тред и вызывает clone() с флагом CLONE_THREAD
分解物質
рантайм го, в свою очередь вызывает clone() напямую
Anonymous
вот в доках токио есть этот пример
Anonymous
но почему он сам берет Future
Maxim
В этом чате го обсуждают больше, чем сам раст
Anonymous
рантайм го, в свою очередь вызывает clone() напямую
а, ты про это, ну естественно они могут не юзать pthreads) я не смотрел реализация - посыл был в том, что все равно это мимо ос не проидет)
Anonymous
если честно, я не помню уже про что там было
分解物質
про модель потоков m:n
分解物質
https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%82%D0%BE%D0%BA_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F#M:N_.28.D1.81.D0.BC.D0.B5.D1.88.D0.B0.D0.BD.D0.BD.D0.B0.D1.8F_.D0.BF.D0.BE.D1.82.D0.BE.D0.BA.D0.BE.D0.B2.D0.BE.D1.81.D1.82.D1.8C.29
Anonymous
про модель потоков m:n
нет же, разговор там про IO был, и я лишь написал, что гошный планировщик ненужная абстракция (по моему скромному мнению)
Anonymous
почитаю, спс
Anonymous
то есть сейчас с фючюрами только так можно работать? https://ghostbin.com/paste/kmt3f
պլհկ
Ну примерно
պլհկ
А как ты хотел
Anonymous
я ожидал что фючюры смогут принимать любые значения
Anonymous
а не только другие фючюры
պլհկ
Сорян
Anonymous
?
Danila Matveev
что значить принимать любые значения?
Anonymous
ну тип
Anonymous
для того чтобы отправить значение его нужно в future::ok засунуть
Danila Matveev
ты ж сам написал функцию, ожидающую фьючу, само собой фьюча там и должна быть передана
Anonymous
а как не ожидая фьючю такое написать?
Anonymous
чтоб просто core.run(add_10(10)) работало