170 похожих чатов

Здравствуйте, у меня []byte огромный порядка 2-3Гб. Я знаю смещение

(символ) начиная с которого мне нужно обрезать определнные куски из этого []byte. Есть какой-то хороший способ чтобы всё это в памяти не копилось, а наоборот этот []byte потихоньку уменьшался моими вырезаниями кусков?

12 ответов

20 просмотров

https://golang.org/pkg/io/#ReadSeeker ?

Alexandr Sokolov
https://golang.org/pkg/io/#ReadSeeker ?

м? у меня уже байты лежат в памяти огромным куском. теперь пытаюсь отрезать кусочки от этого огромного блока. чтобы высвобождать память и последующий поиск по этому []byte занимал меньше времени.

🅺🆁🅴🅻 🅰🅸🅵🅾🅻🅸🅽
м? у меня уже байты лежат в памяти огромным куском...

Интересная у вас задача) Вы можете выделять новые слайсны нужного размера, и делать copy в них из изначального, после чего ибавиться от ссылки на основной слайс, и надеяться, что GC придет за ним

Alexandr Sokolov
Интересная у вас задача) Вы можете выделять новые ...

вот думал без выделения новых слайсов можно как-то. пытаюсь уместиться в свои 16 ГБ памяти и никак не получается нормально)))

🅺🆁🅴🅻 🅰🅸🅵🅾🅻🅸🅽
вот думал без выделения новых слайсов можно как-то...

Забудьте. Под капотом слайса массив -- сплошной блок памяти. Он очистится только полностью. Может и можно каким-то дичайшим хаком это сделать, но кажется, что это из разряда фантастики

Roman Timofeev
как эти данные оказались в памяти?

А вот это действительно очень хороший вопрос. В первую очередь я бы смотрел в эту сторону

Roman Timofeev
как эти данные оказались в памяти?

arr, err := func() ([]byte, error) { file, err := os.Open(*fileToRead) if err != nil { panic(err) } defer file.Close() return ioutil.ReadAll(file) }()

🅺🆁🅴🅻 🅰🅸🅵🅾🅻🅸🅽
arr, err := func() ([]byte, error) { file,...

Ну так ReadSeeker вам в помощь. Не нужно выгружать в память все

Roman Timofeev
а чего не ReadAt?

Да не важно. Зависит от реализации и того, что нужно человеку)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта