Файловая система может интерпретироваться как иерархическое хранилище значений ключей, и ее часто используют в программах Unix. Однако создание файлов может быть довольно дорогостоящим, в зависимости от используемой ОС и файловой системы. В частности, различные файловые системы значительно различаются в зависимости от масштаба времени доступа с количеством файлов в одном каталоге. Например. см. Производительность NTFS и большие объемы файлов и каталогов и Как вы справляетесь с большим количеством маленьких файлов? : «Производительность NTFS сильно ухудшается после 10000 файлов в каталоге».
Таким образом, вы можете увидеть значительные преимущества, перейдя от псевдобазы данных, использующей миллионы небольших файлов, к «реальной» базе данных, такой как SQLite, которая хранит данные в одном файле, что делает доступ к отдельным записям более дешевым.
С другой стороны, 2 миллиона записей - это не так много, что говорит о том, что издержки файловой системы не могут быть для вас ограничивающим фактором. Попробуйте запустить программное обеспечение с тестовой рабочей нагрузкой и использовать профилировщик или другие средства отладки, чтобы узнать, на что тратится время. Это действительно open()
, что занимает так много времени? Или есть другая дорогостоящая обработка, которая может быть оптимизирована? Если есть этап предварительной обработки, который можно распараллелить, он один может значительно сократить время обработки.
Я - с Вами marc: я хотел бы видеть расширяемую платформу подсветки синтаксиса, которая могла генерировать маркируемый объект "документа", который мог затем быть отображен через средства управления для каждой платформы дисплея. Таким образом, синтаксический анализатор/токенизатор мог быть записан однажды!
Лучшее, которое, как я могу сказать, является, что этот поток предполагает, что ActiProSoftware работает над управлением WPF для их маркера синтаксиса.
Все те платформы полностью отличаются, и у каждого есть их собственные методы дисплея рендеринга. Таким образом, не будет никакого универсального управления, которое делает все. Каждая платформа будет иметь отдельный контроль
Однако можно реализовать веб-элемент управления и использовать его на странице. Затем объект браузера в winforms или wpf может использовать адрес страницы для отображения его