|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
МСУАлексей КБольшие объёмы вроде не планируются Что мешает сразу написать по-человечески? ) Капитан очевидность шепчет: лееень ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 12:38 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
МСУhVosttДа я в курсе, но если документы не большие, то можна и byte[] Можно, я не против. Но если много клиентов и все они в небольшой промежуток времени начнут подсирать память апп сервера, тоже ничего хорошего. В общем, по ситуации. Я всегда с потоками при генерации/обработке файлов работаю через временные файлы. Память слишком ценный ресурс, чтобы его разбазаривать на хранение потоков. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 12:40 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
МСУЭто что ж получается, если надо отдать клиенту HD фильм, то нужно готовить временный файл в пяток гигабайт? :) http://codearticles.ru/articles/2445 Ты утрируешь. Если требуется конвертация, или, допустим, к видео надо налепить водяной знак качества, то без временного файла не обойтись. А просто отдать конечно надо напрямую потоком. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 12:42 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
hVosttЯ всегда с потоками при генерации/обработке файлов работаю через временные файлы. Научи этому теперь Алексея :) hVosttПамять слишком ценный ресурс, чтобы его разбазаривать на хранение потоков. Так потоки бывают не только MemoryStream. Хвост, учи матчасть уже, елки-палки hVosttТы утрируешь. Если требуется конвертация, или, допустим, к видео надо налепить водяной знак качества, то без временного файла не обойтись. С ходу так сказать не могу, но в целом да. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:02 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
МСУНаучи этому теперь Алексея :) Да он всё умеет, только ленится и нос воротит МСУТак потоки бывают не только MemoryStream. Хвост, учи матчасть уже, елки-палки Да не, ты всё врёшь. Потоки бывают только MemoryStream ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:10 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
Кстати, Алексею советовал бы почитать про великолепный класс PushStreamContent. Вот тут про асинхронный стримминг. То есть в идеале можно сделать вообще без файлов. На лету из потока в поток стриммимся. К примеру, есть у нас файл в БД (блоб, файл тейбл). Читаем его в Stream и сразу же стриммим клиенту. Ни память, ни левые темповые файлы не насилуют систему. Вот это высший пилотаж, братцы. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:15 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
hVosttМСУпропущено... Что мешает сразу написать по-человечески? ) Капитан очевидность шепчет: лееень Потому что нельзя делать сразу всё. :-) Наверное переделаю потом на временный файл. Так пойдёт для Asp.Net? Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:31 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
МСУКстати, Алексею советовал бы почитать про великолепный класс PushStreamContent. Вот тут про асинхронный стримминг.Непонятно зачем это мне, но всё равно спасибо! :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:33 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
Алексей КТак пойдёт для Asp.Net? Код: c# 1.
Подойдёт, конечно. Но всё-равно уныленько. Городить файлы там, где можно обойтись тупо потоком... ну я не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:39 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
МСУГородить файлы там, где можно обойтись тупо потоком... ну я не знаю.Я не пойму как тут обойтись без файла, если задача избавиться от MemoryStream. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:40 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
Алексей КТак пойдёт для Asp.Net? Код: c# 1.
Да. Но лучше сделать менеджер временных файлов, на подобии кеша. Файлы выдаются под unisg (с удалением после использования) или под запрос, или на время с обязательной чисткой. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:44 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
МСУГородить файлы там, где можно обойтись тупо потоком... ну я не знаю. Так это правильно. Файлы тоже работают быстро, особенно если потоки буфферизованные, так и гибче гораздо. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:45 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
hVosttАлексей КТак пойдёт для Asp.Net? Код: c# 1.
Да. Но лучше сделать менеджер временных файлов, на подобии кеша. Файлы выдаются под unisg (с удалением после использования) или под запрос, или на время с обязательной чисткой.Согласен, выдачу временных файлов лучше обернуть в отдельный сервис, отдавать сразу открытый FileStream c включенным DeleteOnClose. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:48 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
Алексей КМСУПроси прощения у опен иксэмэля, холоп! :)Как тебе хеловорд? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
А в интерфейсе это как выглядит? Ссылка на скачивание? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:49 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
Если скачивается какой-нибудь месячный отчёт, то при первом запросе сформировать и положить на диск. Остальные будут получать уже готовый файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:51 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
Алексей КМСУГородить файлы там, где можно обойтись тупо потоком... ну я не знаю.Я не пойму как тут обойтись без файла, если задача избавиться от MemoryStream. Объясни, зачем тебе файл? Чтобы клиент получил файл, вовсе не обязательно на сервере создавать файл. Прикинь :) hVosttМСУГородить файлы там, где можно обойтись тупо потоком... ну я не знаю. Так это правильно. Файлы тоже работают быстро, особенно если потоки буфферизованные, так и гибче гораздо. Так-то. Просто есть у тебя есть Stream, глупо создавать файл и отдавать его клиенту. Не проще ли сразу отдать Stream? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:52 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
Алексей Котдавать сразу открытый FileStream c включенным DeleteOnClose. Эпический гавнокод ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:53 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
МСУТак-то оно так. Просто если у тебя есть Stream, глупо создавать файл и отдавать его клиенту. Не проще ли сразу отдать Stream? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:55 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
skyANAА в интерфейсе это как выглядит? Ссылка на скачивание?Да, ссылка на скачивание файла. skyANAЕсли скачивается какой-нибудь месячный отчёт, то при первом запросе сформировать и положить на диск. Остальные будут получать уже готовый файл.Пока файлы планируем генерировать на момент запроса. Тяжёлые месячные отчёты мы обычно формируем джобом и храним в "виде данных" в БД. Хранить отчёты в excel-виде пока не было необходимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 13:55 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
Алексей КТяжёлые месячные отчёты мы обычно формируем джобом и храним в "виде данных" в БД. Хранить отчёты в excel-виде пока не было необходимости. Хоспади, когда же вы в свой ларёк наймете биайщика, который запилит вам честный куб, процессинг и ETL :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 14:00 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
МСУАлексей Кпропущено... Я не пойму как тут обойтись без файла, если задача избавиться от MemoryStream. Объясни, зачем тебе файл? Чтобы клиент получил файл, вовсе не обязательно на сервере создавать файл. Прикинь :) hVosttпропущено... Так это правильно. Файлы тоже работают быстро, особенно если потоки буфферизованные, так и гибче гораздо. Так-то. Просто есть у тебя есть Stream, глупо создавать файл и отдавать его клиенту. Не проще ли сразу отдать Stream? :)Ну ты же сам сказал "чтобы не засирать память веб-сервера" (ц), с чем я согласен. Иначе какой смысл отказываться от byte[]? зы: Код базового контроллера пока такой: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 14:00 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
Алексей КskyANAА в интерфейсе это как выглядит? Ссылка на скачивание?Да, ссылка на скачивание файла. skyANAЕсли скачивается какой-нибудь месячный отчёт, то при первом запросе сформировать и положить на диск. Остальные будут получать уже готовый файл.Пока файлы планируем генерировать на момент запроса. Тогда достаточно в Response передать поток, временный файл не обязательно создавать. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 14:00 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... Да, ссылка на скачивание файла. пропущено... Пока файлы планируем генерировать на момент запроса. Тогда достаточно в Response передать поток, временный файл не обязательно создавать.Да я знаю, просто речь зашла о больших документах, не влезающих в память сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 14:02 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
Алексей КНу ты же сам сказал "чтобы не засирать память веб-сервера" (ц), с чем я согласен. Ну так всё правильно. Теперь ты память не засираешь, уже хорошо. Но файл тут зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 14:02 |
|
Топик ненависти к Open XML SDK
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... Тогда достаточно в Response передать поток, временный файл не обязательно создавать.Да я знаю, просто речь зашла о больших документах, не влезающих в память сервера. Причем тут память сервера? Память мы уже проехали, ты вкурил, что в память какать не хорошо. Теперь идет спич о файл vs поток ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2015, 14:03 |
|
|
start [/forum/topic.php?fid=20&msg=38922266&tid=1401711]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
31ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 343ms |
total: | 468ms |
0 / 0 |