| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Время необходимое для десериализации |
| Автор: Incinerated 14.12.2010, 15:37 |
| У меня сериализуется состояние класса в определенный момент в одном приложении, и в какой то другой момент времени в другом приложении этот класс десериализуется. Проблема в том, что размер файла в среднем 50-100 Mb получается, и процесс десериализации занимает прилично времени (секунд 10-14 в среднем) , что в принципе не критично, но хотелось бы чтобы был какой то прогресс бар что ли, ну или проценты просто, собственно не важно, чтобы было видно как идет процесс. Возможно ли сделать такое? Спасибо. |
| Автор: mes 14.12.2010, 15:45 |
возможно |
| Автор: Incinerated 14.12.2010, 15:53 | ||
каким образом? |
| Автор: boostcoder 14.12.2010, 15:57 |
покажите код сериализации. |
| Автор: Incinerated 14.12.2010, 15:57 | ||||
серилизация:
десериализация:
если поможет... я не знаю как сюда что то можно прикрутить.... |
| Автор: mes 14.12.2010, 16:01 |
| в общем случае вызывать в цикле (де)сериализации коллбяк со значением текущего состояния работ.. точнее можно сказать только зная детали реализации.. Добавлено через 1 минуту и 7 секунд опять .Net |
| Автор: boostcoder 14.12.2010, 16:03 |
вы разделом ошиблись. Добавлено через 23 секунды хз что это. но определенно не с++. |
| Автор: mes 14.12.2010, 16:03 |
| разбить на порции, и сериализовать частями.. Добавлено через 32 секунды c++/cli |
| Автор: boostcoder 14.12.2010, 16:05 |
c++/cli != с++ |
| Автор: mes 14.12.2010, 16:06 |
c++/qt тоже не равно c++ но это оффтопик |
| Автор: boostcoder 14.12.2010, 16:13 |
qt написано на с++(кстати многие этого не знают). и компилируется любым с++ компилятором. в таком случае, c++/boost не с++ ? |
| Автор: mes 14.12.2010, 16:17 |
c++, у него нет moc, вносящего свой синтаксис.. единственное что c++/qt это малый шаг в сторону, а c++/cli это фактически два сцепленных между собой языка... (только вот проинтегрироваынны между собой плохо) на c++/cli можно также писать и обычный с++ код, но нельзя его смешивать с managed кодом.. |
| Автор: boostcoder 14.12.2010, 16:21 |
moc не вносит свой синтаксис. он ищет в исходниках макросы препроцессора, и на основании информации полученной из них, генерирует еще один с++ файл, который необходимо добавить к компиляции. если же скомпилировать исходник содержащий макросы для moc`а - он скомпилируется, но неслинкуется. Добавлено через 53 секунды ошибаетесь. это просто метагенератор. и его цель, та же. что и у discolygen. Добавлено через 2 минуты и 55 секунд а c++/cli есть для линукс? и вообще, для чего он может мне понадобится? значит не надо оно мне. Добавлено через 8 минут и 54 секунды топик: "Форум -> Программирование -> .NET -> .NET для новичков" ы) перенесли. |
| Автор: boostcoder 14.12.2010, 16:41 |
если бы это было так, то такой код бы не компилировался компилятором без предварительной обработки moc`ом. |
| Автор: mes 14.12.2010, 16:43 | ||
не правда.. разница в результате конечной компиляции.. Добавлено через 1 минуту и 54 секунды тема то убежала ... и сколько мы тут уже на флудили ) интересно нас не накажут за это ?1 предупреждений вроде еще не было .. с другой стороны ответ по теме уже дан.. Добавлено через 3 минуты и 31 секунду так тс помойму нам эту тему подарил.. он себе новую завел |
| Автор: boostcoder 14.12.2010, 16:49 | ||
компиляция с++ - это генерация объектного файла. так вот, этот самый объектный файл, генерируется правильный. линковка к ЯП не относится.
та забили на тему, наверное Добавлено @ 16:50 великодушный человек, что тут скажешь. |
| Автор: mes 14.12.2010, 16:52 |
a qt-компиляция - это генерация одного основного и возможного одного вспомогательного объектника... Добавлено @ 16:53 с точки зрения c++, но бывают и другие взгляды.. как впрочем и само понятие линковка зависит от платформы и ее может не быть вообще.. |
| Автор: Incinerated 14.12.2010, 17:17 |
| ну вы же не знаете что такое ПМ... что тут поделать... могли бы и тут помочь, разница то собственно, а ответ по теме про цикл, я вообще не понял, как это касается моей ситуации, я же не знаю как реализован класс BinaryFormatter... |
| Автор: mes 14.12.2010, 17:19 | ||
ответ был чуть ниже.. разбить на порции... сериализовать не весь список сразу , а частями в цикле.. Добавлено через 40 секунд о каком из ПМ идет речь ? Добавлено через 1 минуту и 51 секунду а понял, о том что мы не в привате переписываемся.. так там не удобно.. и скучно.. |
| Автор: Incinerated 14.12.2010, 17:23 | ||||
это будет достаточно проблематично, части равными сделать точно не получиться... и все равно будут большими...
вы могли поспорить с boostcoder в ПМ, а не в моей теме... |
| Автор: mes 14.12.2010, 17:25 | ||
а равными не надо.. ну а сколько элементов у Вас в списке ? больше 50 ? |
| Автор: Incinerated 14.12.2010, 17:28 | ||||
от одного до ну скажем 10... каждый элемент содержит в себе еще списки, которые в свою очередь могут в сумме хранить и 100 000 элементов, отсюда и такой большой размер получается... |
| Автор: mes 14.12.2010, 17:47 |
| значит менять подход надо |
| Автор: Incinerated 14.12.2010, 17:58 |
| в том то и дело) что не получиться =) задача поиск файлов, на основе кеширования файловой системы =)... хочешь не хочешь, а размер будет большой базы данных... |
| Автор: mes 14.12.2010, 18:17 |
не подход к организации базы, а подход к сериализации данных.. надо изменить политику так, чтоб была возможность получать сведенья после каждой порции данных.. |