Size: a a a

2020 July 12

аа

аа ааа in Haskell
но это два раза O(n)
источник

аа

аа ааа in Haskell
аа ааа
Тут есть анпак и ффи запись листа в массив
pokeArray :: Storable a => Ptr a -> [a] -> IO ()
источник

JS

Jerzy Syrowiecki in Haskell
аа ааа
как можно получить Ptr Word8 из ShortByteString максимально дешево?
useAsCString
источник

аа

аа ааа in Haskell
упс, да
источник

аа

аа ааа in Haskell
спасибо большое
источник

MK

Maxim Koltsov in Haskell
это тоже O(n)
источник

MK

Maxim Koltsov in Haskell
для обычных байтстрингов есть unsafeUseAsCString за O(1)
источник

аа

аа ааа in Haskell
Maxim Koltsov
это тоже O(n)
но тут один раз O(n)
источник

MK

Maxim Koltsov in Haskell
это да)
источник

JS

Jerzy Syrowiecki in Haskell
для шортов вроде должно быть неважно, сколько проходов
источник

аа

аа ааа in Haskell
почему?
источник

JS

Jerzy Syrowiecki in Haskell
они же короткие. несколько проходов по одной кэшлинии, возможно, будут дешевле, чем один выход из кэшлинии
источник

JS

Jerzy Syrowiecki in Haskell
конечно, на самом деле их суть не в длине, а в переиспользовании памяти
источник

к

кана in Haskell
Maxim Koltsov
для обычных байтстрингов есть unsafeUseAsCString за O(1)
там же тогда не будет длины в байтскринге, это не опасно?
источник

MK

Maxim Koltsov in Haskell
там самое противное что нуль-байта не будет
источник

MK

Maxim Koltsov in Haskell
а если нужна длина — length за O(1) работает
источник

MK

Maxim Koltsov in Haskell
+ есть unsafeUseAsCStringLen
источник

JS

Jerzy Syrowiecki in Haskell
unsafeUseAsCStringLen — O(1) с длиной
источник

MK

Maxim Koltsov in Haskell
ещё интересная штука unsafePackCStringLen
источник

MK

Maxim Koltsov in Haskell
я недавно игрался
источник