Size: a a a

2021 April 04

S

Sergey eSKon in Qt
Flower Surgeon
товарищи, а что будет эффективнее использовать для чтения из QFile? QByteArray или QVector(std::vector)?
QVector для чтения из файла? Это как?
источник

FS

Flower Surgeon in Qt
Sergey eSKon
QVector для чтения из файла? Это как?
под буфер, данные хранить
источник

S

Sergey eSKon in Qt
Flower Surgeon
под буфер, данные хранить
Ну тогда речь не о чтении из файла, а хранении данных. И тут многое зависит от типа данных, способов доступа и т.д. если это байтовый массив, то qbytearray конечно правильней, он для того и есть
источник

FS

Flower Surgeon in Qt
Sergey eSKon
Ну тогда речь не о чтении из файла, а хранении данных. И тут многое зависит от типа данных, способов доступа и т.д. если это байтовый массив, то qbytearray конечно правильней, он для того и есть
У QFile есть метод read, который возвращает QByteArray. Насколько это быстрее/медленнее, чем myfile.read(myvector.data(), n)?
источник

S

Sergey eSKon in Qt
Блин, 5 минут на написание программы теста
источник

FS

Flower Surgeon in Qt
У меня нет времени на тесты. Надо писать код.
источник

S

Sergey eSKon in Qt
С первой реплики до последней прошло 15 мин. А ответа так и нет. Э- эффективность :)
источник

GS

Georgy Shepelev in Qt
Flower Surgeon
У QFile есть метод read, который возвращает QByteArray. Насколько это быстрее/медленнее, чем myfile.read(myvector.data(), n)?
Рид в подготовленную память быстрее, из интуитивных соображение
источник

GS

Georgy Shepelev in Qt
Сигнатура с qbytearray минимум тратит время на создание байтЭррея
источник

FS

Flower Surgeon in Qt
Georgy Shepelev
Рид в подготовленную память быстрее, из интуитивных соображение
Я к этому и пришёл, по итогу.
источник

GS

Georgy Shepelev in Qt
Но твой вопрос всё равно плохой. Потому, что всё надо тестить и измерять. Особенно интересным может быть то, что даже если один метод быстрее другого, но его использование именно в твоём приложении не даёт никакого ощутимого эффекта - просто потому, что  сам этот код расходует единицы процентов ресурсов процессора
источник

FS

Flower Surgeon in Qt
Georgy Shepelev
Но твой вопрос всё равно плохой. Потому, что всё надо тестить и измерять. Особенно интересным может быть то, что даже если один метод быстрее другого, но его использование именно в твоём приложении не даёт никакого ощутимого эффекта - просто потому, что  сам этот код расходует единицы процентов ресурсов процессора
Есть мнение, что я всё равно перееду на file mapping и мне это станет не нужно.
источник

FS

Flower Surgeon in Qt
Georgy Shepelev
Рид в подготовленную память быстрее, из интуитивных соображение
А в данный момент — да, выбор из разумных соображений.
источник

S

Sergey eSKon in Qt
Последующий доступ, по-моему, куда важней непосредственно чтения. Если нужно потом читать куски то QByteArray будет и удобней и эффективней. Если же последовательной чтение - то без разницы. Непонятно почему вы задались вопросом именно про чтение - по-моему не самое узкое место. И, кстати, уверен, что внутри кьют так и читает в заранее выделенную память, только это QByteArray. Там ведь тоже есть data() и в этом смысле вообще никакой разницы нет.
источник

S

Sergey eSKon in Qt
Georgy Shepelev
Сигнатура с qbytearray минимум тратит время на создание байтЭррея
уверен, что это время даже замерить не удастся - настолько оно маленькое
источник

m

mefest in Qt
Flower Surgeon
У QFile есть метод read, который возвращает QByteArray. Насколько это быстрее/медленнее, чем myfile.read(myvector.data(), n)?
это самое медленное место в твоей программе?
источник

m

mefest in Qt
Flower Surgeon
У QFile есть метод read, который возвращает QByteArray. Насколько это быстрее/медленнее, чем myfile.read(myvector.data(), n)?
емнип, то же самое можно же сделать с QByteArray
источник

A

Anton S. in Qt
Кнут говорил, что преждевременная оптимизация это корень всех зол. Хотя может профилирование показало, что чтение из файла действительно боттлнек в вашем приложении (может под  RTOS пишете, мы же не знаем ¯\_(ツ)_/¯)
источник

FS

Flower Surgeon in Qt
mefest
это самое медленное место в твоей программе?
не знаю ¯\_(ツ)_/¯ ещё не знаю
источник

АП

Андрей Петров... in Qt
источник