Здравствуйте, пытаюсь передать большой ТабДок с сервера на клиент, 1-ый способ быстрее 2-ого на 5 минут (10 минут против 15). Подскажите, в чем может быть причина?
Важно: база клиент-серверная на одном и том же компьютере

Способ 1:
Табличный документ сохраняется во временное хранилище (тобишь в ОЗУ сервера), потом возвращается на клиент и получает из адреса временного хранилища табличный документ. Табличный документ присваивается реквизиту форму типа «ТабличныйДокумент». После этого клиент, обращаясь к реквизиту формы, записывает табличный документ как файл на клиенте - 10 минут
Способ 2:
Табличный документ сохраняется как файл на сервере. После чего клиенту передаётся имя файла и клиент скачивает его к себе на машину (это очень быстро). При этом не записывает его себе повторно, а просто типа как Ctrl+C/Ctrl+V - 15 минут

Смотрел замером производительности, всё время занимает метод ТабличныйДокумент.Записать(), дефрагментацию диска делал
---
Ничего, что дисковые затраты на чтение/запись присутствуют во втором способе? Или вы удивлены, что ОЗУ быстрее диска?
---
Да, не внимательно читал. Но запись делают по сути разные приложения, возможно, серверный и клиентский движки сохранения ТабДока в pdf отличаются, хорошо бы протестировать с сохранением в родной mxl. Ну и код, конечно бы посмотреть.

По поводу того, что "ВХ – ни разу не ОЗУ", каюсь, погорячился. Первоначально – это именно помещение значения в кеш.
---
А если способ 3, самый простой:
На форме есть реквизит с типом Табличный документ.
На сервере формируется Табличный документ и выводится в реквизит формы.
Сколько времени занимает?

Какой размер табличного документа?
Какая задача в целом стоит?

Например, в БГУ, в механизме рег. отчетности для подобной задачи поделили табличный документ на части (страницы). Каждая страница это табличный документ, лежит во временном хранилище. То есть на клиент не передается.
В реквизит формы Табличный документ выводится только выбранная страница - получаем из временного хранилища и выводим в реквизит формы.
---
Ничего, что дисковые затраты на чтение/запись присутствуют во втором способе? Или вы удивлены, что ОЗУ быстрее диска?
---
Копирование почти мгновенно, а сама запись же есть как в первом, так и во втором способе
---
Ааа, кажется, понял. В 1 варианте получение таб. дока идет же из ОЗУ сервера, а во втором через запись на диск
---
Хотя в 1ом варианте есть запись документа: ТабличныйДокумент.Записать(), и во 2ом - ТабличныйДокумент.Записать()
 В конечном итоге все сводится к записи на диск, это как узкое место, время должно быть одно и то же?
---
Как мне кажется, основное время тратится на сериализацию/десиралиализацию + косвенная проблема – увеличение фактического объема данных, так как сериализованные данные (текст) весит намного больше (как минимум в 1.5 раза) двоичных данных файла.
---
Табличный документ в десериализованном виде - это когда он в виде реквизита формы с типом Табличный документ? А в сериализованном, это когда находится в переменной?
Получается, стоит попробовать сначала записать в реквизит формы, а потом записать, обращаясь к нему?
---
Почти, только временное хранилище – ни разу не ОЗУ, это просто временный файл во временной папке, который создается сначала на той стороне, на которой выполнен метод ПоместитьВоВременноеХранилище. Значение в него помещается в сериализованном виде, это написано в СП.
---
Получается, что сохранить файл из сериализованного вида - дольше, чем из десериализованного? Но у меня получилось как раз наоборот, то что было сохранено во временном хранилище (сериализованный вид), было в реквизите формы - сохранилось быстрее, чем то, что не было во временном хранилище
---
Почти, только временное хранилище – ни разу не ОЗУ, это просто временный файл во временной папке, который создается сначала на той стороне, на которой выполнен метод ПоместитьВоВременноеХранилище.
Это где такое сказано?
Цитата с ИТС. Руководство разработчика
Внимание! При получении на сервере значения из временного хранилища следует учитывать то, что оно получается по ссылке. В действительности, ссылка эта указывает на значение, которое хранится в кеше. В течение 20 минут, с момента помещения в хранилище или же с момента последнего обращения, значение сохранится в кеше, а затем записывается на диск и из кеша удаляется. При следующем обращении значение загружается с диска и снова помещается в кеш.
---
Информация на основе практического опыта. Если хотите, проверьте сами, только на больших объемах. О каком вообще ОЗУ может идти речь, если данные мигрируют сервер/клиент?
---
Информация на основе практического опыта
Это как определили, что данные только в файле а не в кеше?
(15) О каком вообще ОЗУ может идти речь, если данные мигрируют сервер/клиент?
Т.е. данные передаются файлами напрямую? Вот даже не могу себе такого представить без ОЗУ.
---
Я лишь мониторил временную папку сервера, что там в кеше мне не известно, для меня это черный ящик. На скрине передавались двоичные данные объемом 100Мб.
---
во первых, это не показатель, что данные только в файле. Во вторых, в файле данных может и не быть, а просто зарезервировано место на диске под данные (чтоб гарантировать возможность туда поместить данные из кеша).
---
Ну цифра размера файла растёт ощутимо медленнее, чем когда резервируется место. В общем-то я и не утверждал, что кеш не используется. Для меня важен был факт, что запись диск также используется и нельзя сказать, что временное хранилище – чистое ОЗУ .Тем более, что механизм временного хранилища к теме отношения не имеет.
---
Немного не в ту степь вас увёл. У вас наоборот физическое копирование файла занимает больше времени. Тем не менее, если есть возможность скопировать именно файл mxl, например через сетевую папку, это будет намного быстрее чем передача через временное хранилище. Бегло читал тему. В каком формате записываете ТабДок?
---
Копирование же как раз почти мгновенно происходит. Сама запись табДока в файл 98% времени занимает. Немного не так тему назвал, проблема именно во времени сохранения в файл
---
Сохраняю в формате .pdf в обоих случаях
---
В таком случае, забудьте про сериализацию/десериализацию, временное хранилище и копирование, они тут не при чём. Если всё так, как вы говорите, то проблема только в том, что ваш клиент записывает файл в пдф быстрее, чем сервер. Выводы делайте сами.
---
Он пишет, что клиент и сервер это одна машина.
---
Да, не внимательно читал. Но запись делают по сути разные приложения, возможно, серверный и клиентский движки сохранения ТабДока в pdf отличаются, хорошо бы протестировать с сохранением в родной mxl. Ну и код, конечно бы посмотреть.

По поводу того, что "ВХ – ни разу не ОЗУ", каюсь, погорячился. Первоначально – это именно помещение значения в кеш.
---
То есть получается, что в обоих случаях 98% времени уходит на это в первом случае записывает табличный документ как файл на клиенте и на это во втором Табличный документ сохраняется как файл на сервере и при этом мы имеем разницу во времени 30% все верно?
Хотелось бы код увидеть код в обоих случаях