Size: a a a

2021 April 04

LU

Lucky Uk in pro.lua
вот ещё бодрая штука для опытов на кошках.
источник

M

Mediator in pro.lua
Lucky Uk
заранее память выделяешь под элементы в плюсах? В луажите ffi используешь?
Нет, использую vector как есть. Добавляю по одному элементу, push_back(). Мне казалось, что c++ классы должны быть сами по себе достаточно быстрыми, а оказалось не очень. Впрочем, пробовал даже статаческий массив нужной длины выделить заранее (хотя это нечестно, программа не знает, сколько будет элементов), не сильно помогло, но точных чисел замеров уже не помню.

Не знаю, что такое ffi, просто запускаю.
источник

M

Mediator in pro.lua
Спасибо.
источник

LU

Lucky Uk in pro.lua
Mediator
Нет, использую vector как есть. Добавляю по одному элементу, push_back(). Мне казалось, что c++ классы должны быть сами по себе достаточно быстрыми, а оказалось не очень. Впрочем, пробовал даже статаческий массив нужной длины выделить заранее (хотя это нечестно, программа не знает, сколько будет элементов), не сильно помогло, но точных чисел замеров уже не помню.

Не знаю, что такое ffi, просто запускаю.
Ща.
источник

LU

Lucky Uk in pro.lua
Lua+FFI vs. JavaScript / Хабр
https://habr.com/ru/post/113804/
источник

a

anton in pro.lua
Mediator
Написал один и тот же код на Lua и C++. Luajit быстрее работает. Таблицы в Lua при добавлении новых элементов почему-то быстрее работают, чем сиплюсплюсный vector. Пока не разобрался, почему.
о, а можно код посмотреть?
источник

EG

Emmanuel Goldstein in pro.lua
Mediator
Написал один и тот же код на Lua и C++. Luajit быстрее работает. Таблицы в Lua при добавлении новых элементов почему-то быстрее работают, чем сиплюсплюсный vector. Пока не разобрался, почему.
> Таблицы в Lua при добавлении новых элементов почему-то быстрее работают, чем сиплюсплюсный vector

Не верю. Какая-то погрешность микробенчмарков, вероятно.
источник

S

Snusmumriken in pro.lua
Это Айдар. Он ни в чём не раскаялся и не извинялся, но я его разбанил. Если будет незаметно для себя выпендриваться — я ему об этом сообщу.
источник
2021 April 05

G

GNU/Vsevolod in pro.lua
Есть подобие godbolt для луа, посмотреть байткод/то, что нагенерил jit?
источник

VG

Vladislav Grubov in pro.lua
источник

G

GNU/Vsevolod in pro.lua
спасибо
источник

VM

Vadim Misbakh-Solovi... in pro.lua
Emmanuel Goldstein
> Таблицы в Lua при добавлении новых элементов почему-то быстрее работают, чем сиплюсплюсный vector

Не верю. Какая-то погрешность микробенчмарков, вероятно.
иногда такое бывает.
У меня как-то имплементация crypt_sha256 (кажется) сделанная на lua работала быстрее референсной имплементации на С
источник

VM

Vadim Misbakh-Solovi... in pro.lua
причём, я битовые сдвиги делал умножением :)
источник
2021 April 06

AZ

Aydar Zarifullin in pro.lua
Mediator
Написал один и тот же код на Lua и C++. Luajit быстрее работает. Таблицы в Lua при добавлении новых элементов почему-то быстрее работают, чем сиплюсплюсный vector. Пока не разобрался, почему.
Если не резервировать память для элементов вектора заранее, то при каждом добавлении будет выделяться память а это всегда дорого. К тому же многие стандартные контейнеры реализованы так чтобы их было удобно применять в широком диапазоне задач, под конкретный случай можно написать более оптимальную версию вектора. А ещё в плюсах очень много неочевидностей из-за этого высок риск "неправильного" использования даже стандартных возможностей языка. Например https://youtube.com/c/TheChernoProject в одном из видео упоминал про https://github.com/electronicarts/EASTL это либа которая более оптимально реализует стандартные функции/контейнеры для использования в геймдеве.
источник

LU

Lucky Uk in pro.lua
в общем - тщательнее надоть.
источник

M

Mediator in pro.lua
Aydar Zarifullin
Если не резервировать память для элементов вектора заранее, то при каждом добавлении будет выделяться память а это всегда дорого. К тому же многие стандартные контейнеры реализованы так чтобы их было удобно применять в широком диапазоне задач, под конкретный случай можно написать более оптимальную версию вектора. А ещё в плюсах очень много неочевидностей из-за этого высок риск "неправильного" использования даже стандартных возможностей языка. Например https://youtube.com/c/TheChernoProject в одном из видео упоминал про https://github.com/electronicarts/EASTL это либа которая более оптимально реализует стандартные функции/контейнеры для использования в геймдеве.
Не, я понимаю, я нуб в плюсах, можно дорабатывать, просто утверждение «C++ по определению быстрее языка N (тем более динамического)» оказалось не так уж неоспоримо.
источник

VD

Vlad Doc in pro.lua
Mediator
Не, я понимаю, я нуб в плюсах, можно дорабатывать, просто утверждение «C++ по определению быстрее языка N (тем более динамического)» оказалось не так уж неоспоримо.
Всё равно можно насрать так что будет медленнее
источник

АК

Александр Караев... in pro.lua
Mediator
Не, я понимаю, я нуб в плюсах, можно дорабатывать, просто утверждение «C++ по определению быстрее языка N (тем более динамического)» оказалось не так уж неоспоримо.
Но утверждение "специалист одинакового уровня в C++ и lua напишет код, который в С++ будет быстрее" неоспоримо
источник

VM

Vadim Misbakh-Solovi... in pro.lua
Александр Караев
Но утверждение "специалист одинакового уровня в C++ и lua напишет код, который в С++ будет быстрее" неоспоримо
на самом деле, нет. Особенно, если мы говорим о LuaJIT
источник

VM

Vadim Misbakh-Solovi... in pro.lua
Vadim Misbakh-Soloviov
иногда такое бывает.
У меня как-то имплементация crypt_sha256 (кажется) сделанная на lua работала быстрее референсной имплементации на С
^^^^^ @zarif_li
источник