Re[28]: Как в одну строку кода прочитать содержимое файла в
От: rg45 СССР  
Дата: 05.01.24 18:39
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Ты просто отвечай, когда мысль оформишь окончательно, а то я заколебался читать по два-три твоих ответа на одно мое сообщение


А давай, я как-нибудь без сопливых решу, сколько и где сообщений мне писать, ладно?
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[6]: Как в одну строку кода прочитать содержимое файла в массив?
От: B0FEE664  
Дата: 05.01.24 18:40
Оценка:
Здравствуйте, ·, Вы писали:

·>Вот только все эти заморочки в C++ никакую из этих проблем не решают.

Странно перекладывать такого рода проблемы на язык.

·>Хороший — это если 30+ лет опытный программист написал портянку кода, ещё один 40+ опытный отревьювил, а потом ещё и команда опытных тестеров оттестила в хвост и гриву, потом в проде погонялось годик-другой с активной правкой багов. А по факту будет код как в этом топике выше, со всем букетом проблем, да ещё и накопишащенный с ошибками.

Или не будет.

BFE>>Зачем тащить ошибки других языков в С++?

·>Какие конкретно ошибки?
Вот такие функции, как прочитать весь файл в память.

·>В java — new FileInputStream("file.name").readNBytes(123456). Впрочем толку то, всё равно в большинстве случаев эту твою функцию будут вызывать как ReadAllBytes(MAX_INT), потому что вменяемо рассчитать nMaxFileSize — по сути неалгоритмизируемая задача.

Легко: возьмите свободную память и поделите её попалам. Расчёт закончен.
И каждый день — без права на ошибку...
Re[28]: Как в одну строку кода прочитать содержимое файла в
От: rg45 СССР  
Дата: 05.01.24 18:41
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Почему же пургу? Переаллокации есть? Есть. Влияют на производительность? Влияют.


Стоит ли это хоть какого-нибудь внимания? А нет, нихера не стоит, как показывает опыт.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[30]: Как в одну строку кода прочитать содержимое файла в
От: rg45 СССР  
Дата: 05.01.24 18:59
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Еще раз повторю для людей с йододефицитом: (начинай отсюда https://rsdn.org/forum/cpp/8662423.1
Автор: rudzuk
Дата: 05.01 17:08
)


R>я: оно читает по 512 байт

R>ты: и чо?

Для людей с йододефицитом расшифровываю: "и чо?" означает буквально: "как, нахрен, размер порции чтения влияет на количество переаллокаций?". И вопрос вполне закономерный, поскольку до этого момента ты в качестве основной и единственной проблемы выдвигал количество перелокаций и нигде и никак не обозначил изменений в своих взглядах.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 05.01.2024 19:16 rg45 . Предыдущая версия .
Re: Как в одну строку кода прочитать содержимое файла в масс
От: rg45 СССР  
Дата: 05.01.24 19:47
Оценка:
Здравствуйте, Kluev, Вы писали:

K>есть ли в std аналог File.ReadAllBytes()?


Тут нашлись такие, кто докопался до эффективности. Ну так вот, если важно быстродействие, то можно использовать чуть более длинную версию — аж целых 4 строчки

std::vector<uint8_t> read_all_bytes(const std::string& path)
{
   std::basic_ifstream<uint8_t> input(path.c_str(), std::ios_base::binary);
   std::vector<uint8_t> bytes(std::filesystem::file_size(path));
   input.read(bytes.data(), bytes.size());
   return bytes;
}


Ну а оптимизированная версия save_all_bytes все так же в две строчки и даже чуть меньше букв:

void save_all_bytes(const std::vector<uint8_t>& bytes, const std::string& path)
{
   std::basic_ofstream<uint8_t> output(path.c_str(), std::ios_base::binary);
   output.write(bytes.data(), bytes.size());
}
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 05.01.2024 20:03 rg45 . Предыдущая версия . Еще …
Отредактировано 05.01.2024 19:56 rg45 . Предыдущая версия .
Отредактировано 05.01.2024 19:54 rg45 . Предыдущая версия .
Re[2]: Как в одну строку кода прочитать содержимое файла в массив?
От: rudzuk  
Дата: 05.01.24 20:05
Оценка:
Здравствуйте, rg45, Вы писали:

r> Тут нашлись такие, кто докопался до низкой эффективности. Ну так вот, если важно быстродействие, то можно использовать чуть более длинную версию — аж целых 4 строчки


r>
r> std::vector<uint8_t> read_all_bytes(const std::string& path)
r> {
r>    std::basic_ifstream<uint8_t> input(path.c_str(), std::ios_base::binary);
r>    std::vector<uint8_t> bytes(std::filesystem::file_size(path));
r>    input.read(bytes.data(), bytes.size());
r>    return bytes;
r> }
r>


Избавился от одной проблемы и тут же влетел в другую Прочти содержимое вот этого файла "/proc/self/status". Потом продолжим разбор, чувствую будет весело
avalon/3.0.2
Re[25]: Как в одну строку кода прочитать содержимое файла в
От: rudzuk  
Дата: 05.01.24 20:05
Оценка:
Здравствуйте, rg45, Вы писали:

r> R>Ну вот, ошибка на месте Она в логике. Подсказывать или сам?


r> Ну так чего притих? Где обещанная "ошибка"? Ты что там, С++ решил подучить по случаю? Ну, тоже полезно.


Ну, вижу результата нет. В общем-то все просто: буфер резервируешь, а читать продолжаешь по-крупицам. Отсюда отсутствие каких-либо изменений. Читай сразу весь буфер, сможешь поднять производительность до уровня шарпа
avalon/3.0.2
Re[29]: Как в одну строку кода прочитать содержимое файла в
От: rudzuk  
Дата: 05.01.24 20:05
Оценка:
Здравствуйте, rg45, Вы писали:

r> R>Ты просто отвечай, когда мысль оформишь окончательно, а то я заколебался читать по два-три твоих ответа на одно мое сообщение


r> А давай, я как-нибудь без сопливых решу, сколько и где сообщений мне писать, ладно?


Решать-то ты решай, но и я не буду на твои дубли отвечать.
avalon/3.0.2
Re[29]: Как в одну строку кода прочитать содержимое файла в
От: rudzuk  
Дата: 05.01.24 20:05
Оценка:
Здравствуйте, rg45, Вы писали:

r> R>Почему же пургу? Переаллокации есть? Есть. Влияют на производительность? Влияют.


r> Стоит ли это хоть какого-нибудь внимания? А нет, нихера не стоит, как показывает опыт.


Замер показал снижение производительности на 4% из переаллокаций. В данном примере. Хотя, я согласен, что на фоне провальных результатов это ничто
avalon/3.0.2
Re[31]: Как в одну строку кода прочитать содержимое файла в
От: rudzuk  
Дата: 05.01.24 20:05
Оценка:
Здравствуйте, rg45, Вы писали:

r> Для людей с йододефицитом расшифровываю: "и чо?" означает буквально: "как, нахрен, размер порции чтения влияет на количество переаллокаций?". И вопрос вполне закономерный, поскольку до этого момента ты в качестве основной и единственной проблемы выдвигал количество перелокаций и нигде и никак не обозначил изменений в своих взглядах.


Я спросил, сколько переаллокаций будет происходить при чтении большого файла. Это просто вопрос, а количество переаллокаций напрямую зависит от размера читаемых данных. Еще раз, вдумчиво, оно зависит, а не тождественно. Не нужно приписывать мне свои домыслы.
avalon/3.0.2
Re[3]: Как в одну строку кода прочитать содержимое файла в м
От: rg45 СССР  
Дата: 05.01.24 20:16
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Избавился от одной проблемы и тут же влетел в другую Прочти содержимое вот этого файла "/proc/self/status". Потом продолжим разбор, чувствую будет весело


Ну ты душнила. Попробуй напрячь, что там у тебя есть, и понять, что данная функция не претендует быть функцией столь общего применения, как File.RealAllBytes. Да, она не годится для чтения "с учетом фолбека для спец. файлов в некоторых ОС" — но кто от этого сильно расплачется. Зато такая функция легко может быть реализована где-то в локальном пространстве имен. С++ дает своим программистам удочки — что нужно, то и делайте, а вас заваливают тухлой рыбой — хотите, или не хотите, но жрите, что дают. Кароч, иди лесом.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 05.01.2024 20:17 rg45 . Предыдущая версия .
Re[4]: Как в одну строку кода прочитать содержимое файла в м
От: rudzuk  
Дата: 05.01.24 20:20
Оценка:
Здравствуйте, rg45, Вы писали:

r> R>Избавился от одной проблемы и тут же влетел в другую Прочти содержимое вот этого файла "/proc/self/status". Потом продолжим разбор, чувствую будет весело


r> Ну ты душнила. Попробуй напрячь, что там у тебя есть, и понять, что данная функция не претендует быть функцией столь общего применения, как File.RealAllBytes. Да, она не годится для чтения "с учетом фолбека для спец. файлов в некоторых ОС" — но кто от этого сильно расплачется. Зато такая функция легко может быть реализована где-то в локальном пространстве имен. С++ дает своим программистам удочки — что нужно, то и делайте, а вас заваливают тухлой рыбой — хотите, или не хотите, но жрите, что дают. Кароч, иди лесом.


Чего ты так резко слился, пейсатель эффективных двустрочников? Встретился с реальностью, на пол-шишечки? Еще и buffer overflow прощелкал
avalon/3.0.2
Re[5]: Как в одну строку кода прочитать содержимое файла в м
От: rg45 СССР  
Дата: 05.01.24 20:22
Оценка:
Здравствуйте, rudzuk, Вы писали:

R> Чего ты так резко слился, пейсатель эффективных двустрочников? Встретился с реальностью, на пол-шишечки? Еще и buffer overflow прощелкал


Смайликов побольше поставь, а то в искренность не верится.

Ты сперва свое что-нибудь напиши, а мы покритиккуем. Докапываться до чужого кода всегда проще, чем писать что-то самому. Убожество закомплекосванное.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 05.01.2024 20:23 rg45 . Предыдущая версия .
Re[5]: Как в одну строку кода прочитать содержимое файла в м
От: rudzuk  
Дата: 05.01.24 20:22
Оценка:
r> Еще и buffer overflow прощелкал

Нет, это мне показалось
avalon/3.0.2
Re[6]: Как в одну строку кода прочитать содержимое файла в м
От: rudzuk  
Дата: 05.01.24 20:26
Оценка:
Здравствуйте, rg45, Вы писали:

r> Ты сперва свое что-нибудь напиши, а мы покритиккуем. Докапываться до чужого кода всегда проще, чем писать что-то самому. Убожество закомплекосванное.


Тебя, чудило, за язык никто не тянул. Теперь не обижайся
avalon/3.0.2
Re[7]: Как в одну строку кода прочитать содержимое файла в м
От: rg45 СССР  
Дата: 05.01.24 20:29
Оценка: :)
Здравствуйте, rudzuk, Вы писали:

R>Тебя, чудило, за язык никто не тянул. Теперь не обижайся


Да это ты обиженный от рождения, походу, чушок. Ни строчки кода не написал, пенится тут еще что-то.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 05.01.2024 20:48 rg45 . Предыдущая версия . Еще …
Отредактировано 05.01.2024 20:30 rg45 . Предыдущая версия .
Re[6]: Как в одну строку кода прочитать содержимое файла в м
От: rg45 СССР  
Дата: 05.01.24 20:52
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Нет, это мне показалось


Угу. И не только это.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[8]: Как в одну строку кода прочитать содержимое файла в м
От: rudzuk  
Дата: 05.01.24 20:52
Оценка:
Здравствуйте, rg45, Вы писали:

r> R>Тебя, чудило, за язык никто не тянул. Теперь не обижайся


r> Да это ты обиженный от рождения, походу, чушок. Ни строчки кода не написал, пенится тут еще что-то.


Ой, Люся, ты не договорила...
avalon/3.0.2
Re[9]: Как в одну строку кода прочитать содержимое файла в м
От: rg45 СССР  
Дата: 05.01.24 20:54
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Ой, Люся, ты не договорила...


Ты хлебальце сделай попроще. И ротик прикрой, а то расплескивается.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 05.01.2024 20:56 rg45 . Предыдущая версия .
Re[32]: Как в одну строку кода прочитать содержимое файла в
От: rg45 СССР  
Дата: 05.01.24 20:58
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Я спросил, сколько переаллокаций будет происходить при чтении большого файла.


Херасе, спросил он. Сопли не загустели еще, чтоб с кого-то спрашивать. Иди, у гугла спрашивай, или у ChatGPT.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 05.01.2024 21:08 rg45 . Предыдущая версия . Еще …
Отредактировано 05.01.2024 20:59 rg45 . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.