Мне нужно записать некоторые данные из вычислений, которые позже будут прочитаны Paraview (файл .vtu или vtk).
Когда дело доходит до размера файла, я должен перейти на формат ASCII или двоичный формат?
источник
Мне нужно записать некоторые данные из вычислений, которые позже будут прочитаны Paraview (файл .vtu или vtk).
Когда дело доходит до размера файла, я должен перейти на формат ASCII или двоичный формат?
Если вас беспокоит только размер файла, вам нужны двоичные файлы. В качестве иллюстративного примера давайте предположим, что вы записываете 1 число с плавающей запятой двойной точности в файл. Давайте предположим, что файловая система может справиться с этим отлично и удерживая файл, заголовки и отступы равны 0.
Для двоичного файла это число будет принимать точный размер числа в ОЗУ или 8 байтов.
В формате ASCII он будет содержать:
Предполагая, что он использует только 1 байт для символа, то есть 22 байта для хранения того же числа. Это не считается символов, необходимых для разделения между числами (как правило, по крайней мере 1). Поэтому размер файла для формата ASCII будет примерно в 3 раза больше.
Вы можете обменять размер файла на точность сохраненных файлов (оставьте только 5-6 цифр в базе), но это зависит от того, для чего вы их используете. Основным преимуществом ASCII является отладка или создание удобочитаемых данных.
На практике вам редко нужны данные в файлах визуализации, более точные, чем, скажем, 3 действительные цифры. В этом случае ASCII - может быть удивительно - часто более компактен, чем двоичная форма. Если вы думаете об архивации, то при взломе этих файлов ASCII, скорее всего, будут получены самые маленькие файлы, которые вы можете получить.
Тем не менее, Paraview считывает формат VTU, который имеет сжатую двоичную форму (на основе XML, но данные сначала сжимаются libz, а затем снова кодируются для получения текста ASCII). На типичных файлах это экономит в 4-10 раз. Для больших файлов это определенно способ.
источник