Size: a a a

Programming Offtop

2020 October 05

A

Alex in Programming Offtop
Iaroslav Postovalov
в  джаве unsafe, bytebuffer и еще memory handles с недавних пор есть. что из этого не позволяет прямо работать с памятью
про Java не знаю) но в Go bytebuffer не всегда достаточно быстрый, хоть и быстрый)))
источник

IP

Iaroslav Postovalov in Programming Offtop
Alex
про Java не знаю) но в Go bytebuffer не всегда достаточно быстрый, хоть и быстрый)))
лул. ну значит го дураки делают. потому что сделать на ллвм медленный офф-хип - это надо постараться
источник

AN

Alexander Nozik in Programming Offtop
Alex
про Java не знаю) но в Go bytebuffer не всегда достаточно быстрый, хоть и быстрый)))
Что такое "достаточно"? На каких операциях?
источник

(

( in Programming Offtop
Alexander Nozik
Мы про современные оптимизирующие компиляторы. И избежать боксинга куда проще, чем городить асемблерную вставку
Я уверен (скорее всего, это даже доказуемо), что есть задачи, в которых оптимизирующий компилятор не сможет найти лучшее решение
источник

IP

Iaroslav Postovalov in Programming Offtop
Alexander Nozik
Мы про современные оптимизирующие компиляторы. И избежать боксинга куда проще, чем городить асемблерную вставку
причем в хай-левел язык типа го это совсем трындец (потому что нужно понимать, как работать с мемори моделью и еще многим другим, что там навернули поверх ллвм). в сях-то abi нетрудно запомнить, и можно городить сколько угодно асма
источник

AN

Alexander Nozik in Programming Offtop
(
Я уверен (скорее всего, это даже доказуемо), что есть задачи, в которых оптимизирующий компилятор не сможет найти лучшее решение
Разумеется. И супер крутой сиплюсист напишет код, радботающий более быстро (правда не сильно), чем супер крутой жавист. Но ему для этого надо будет в 4 раза больше опыта. С асемблером то же самое, только не в четыре, а в восемь. Поэтому мой вопрос был не о том, можно ли на ассемблерной вставке выиграть, а в том, что за реальный пример там был, что олимпиадники без большого опыта реально выиграли.
источник

AK

Anton Korotkikh in Programming Offtop
Iaroslav Postovalov
лул. ну значит го дураки делают. потому что сделать на ллвм медленный офф-хип - это надо постараться
го не использует ллвм
источник

IP

Iaroslav Postovalov in Programming Offtop
Anton Korotkikh
го не использует ллвм
у них рантайм свой, а кодген, естественно, через ллвм
источник

(

( in Programming Offtop
Alexander Nozik
Разумеется. И супер крутой сиплюсист напишет код, радботающий более быстро (правда не сильно), чем супер крутой жавист. Но ему для этого надо будет в 4 раза больше опыта. С асемблером то же самое, только не в четыре, а в восемь. Поэтому мой вопрос был не о том, можно ли на ассемблерной вставке выиграть, а в том, что за реальный пример там был, что олимпиадники без большого опыта реально выиграли.
А, окей
источник

A

Alex in Programming Offtop
Alexander Nozik
Что такое "достаточно"? На каких операциях?
например, мне нужно из каждого элемента в буфере вычесть 1 )
источник

AK

Anton Korotkikh in Programming Offtop
Iaroslav Postovalov
у них рантайм свой, а кодген, естественно, через ллвм
разве? это вроде было на начальном этапе, потом они полностью переписали компулятор непосредственно на го и там теперь всё свое вроде
источник

A

Alex in Programming Offtop
а ещё лучше) к числу хранящемуся в буфере прибавить 1)
источник

IP

Iaroslav Postovalov in Programming Offtop
Anton Korotkikh
разве? это вроде было на начальном этапе, потом они полностью переписали компулятор непосредственно на го и там теперь всё свое вроде
чет ну ни разу не верится.
источник

AN

Alexander Nozik in Programming Offtop
Alex
например, мне нужно из каждого элемента в буфере вычесть 1 )
И вы хотите сказать, что на ассемблере это быстрее, чем на обычном байтовом буфере?
источник

A

Alex in Programming Offtop
то есть в буфере храниться , например 10^1000000 значное число в десятичной форме, надо прибавить 1 )
источник

A

Alex in Programming Offtop
времени конвертировать число в bigint нету)
источник

IP

Iaroslav Postovalov in Programming Offtop
Anton Korotkikh
разве? это вроде было на начальном этапе, потом они полностью переписали компулятор непосредственно на го и там теперь всё свое вроде
я не верю, что они поддерживают 11 ОСей на 7 архитектурах ручками
источник

AN

Alexander Nozik in Programming Offtop
Alex
времени конвертировать число в bigint нету)
Ну так а зачем конвертировать. Делаете ручной алгоритм с пропагацией единицы. И он будет точно так же работать, как на асме
источник

AK

Anton Korotkikh in Programming Offtop
Iaroslav Postovalov
чет ну ни разу не верится.
источник

A

Alex in Programming Offtop
Alexander Nozik
Ну так а зачем конвертировать. Делаете ручной алгоритм с пропагацией единицы. И он будет точно так же работать, как на асме
интересная идея)
источник