![]() |
|
|
![]()
|
|
| integral |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 3.7.2006 Где: Dnipropetrovs' ;k, Ukraine Репутация: нет Всего: нет |
снач собстно пишу лабу - компилятор, пнятно простенький для простенького языка. И как во всех компиляторах, имеется текст-ареа для текста программы (реализовано через JTextArea). Пользователь указывает искходник, и текст их исходника переписуется сюда. После этого пользователь имеет возможность менять код и компилить. Так вот, сейчас компиляция идет из файла. Т.е. пользователь клацает "компиле", файл перезаписуется (ВЕСЬ, что кажется не есть гуд) и после этого идет считывание лексем с файла. Компилятор однопроходный.
Хочеться: 1. Оптимизировать как-то перезапись. Это возможно? Что возможно я знаю, и даже имею некоторые соображения... но какие-то они очень не оптимальные... 2. Хочется, что бы компилятор считывал символы из окна, а не файла. Если нада изменить текст-ареа на другой компонент - велком Спасибо за помощь! |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: нет Всего: 162 |
integral, честно говоря, ты сюда намешал проблемы реализации и ещё чего-то... я не понял сути вопроса.
|
|||
|
||||
| integral |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 3.7.2006 Где: Dnipropetrovs' ;k, Ukraine Репутация: нет Всего: нет |
Интересует алгоритм сохранения текстового файла, который частично изменен... без использования перезаписи полностью всего содержимого. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: нет Всего: 162 |
Учитывая то, что даже если у тебя файл размером 1 метр, и пользователь добавит в начало 1 байт, тебе всё равно придётся так или иначе переписывать весь файл... ты ещё хочешь это реализовывать? |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
мэппинг файлов тебе поможет CreateFileMapping() - Windows mmap() - Linux -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
ну если так сильно хочется оптимизировать именно этот участок, то можно найти место первого изменения и начинать перезапись только с него
кроме того можно поискать участки, которые не были сдвинуты и остались без изменения, их тоже можно не перезаписывать... P.S. а почему, если не секрет? -------------------- qqq |
|||
|
||||
| Kangaroo |
|
|||
|
AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: нет Всего: 104 |
А что тексты программ могут быть такими большими, что требуется оптимизация? Это ж сколько тысяч строк туда надо всунуть? Почему? Есть вариант в одном потоке запустить сохранение, а в другом - компиляцию. -------------------- Lost.... |
|||
|
||||
| integral |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 3.7.2006 Где: Dnipropetrovs' ;k, Ukraine Репутация: нет Всего: нет |
не секрет) Типа много памяти скушает, если файл эдак на метр Воще наю, что файлы с кодом не такие большие, и на всю эту оптимизацию можна забидь, но такие пожелания препода |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 2 Всего: 134 |
Метр это много Это сообщение отредактировал(а) Mayk - 20.1.2008, 17:57 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: нет Всего: 162 |
||||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
нужно различать учебные и реальные задачи в реальных задачах случаются ситуации, когда действительно нужно оптимизировать, и идея готовить к этому учеников (как и к навыкам выбора времени и места оптимизации) лично мне кажется вполне хорошей для этого совсем необязательно (хотя и желательно) работать с огромными массивами данных Добавлено через 3 минуты и 21 секунду во многих средах реализовано сохранение перед компиляцией, поэтому вполне естественно сохранить его в файл, а потом читать его оттуда кроме того, раз уж компилятор однопроходный, анализ файла не должен приводить к необходимости хранения его целиком в памяти -------------------- qqq |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: нет Всего: 162 |
по-моему, ты не дочитал. Автор хочет сохранять только изменённые куски файла на диск. А это много геморроя не по теме и почти бесполезно с точки зрения времени исполнения кода, если даже не хуже. |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 2 Всего: 134 |
К этому — это к чему? К оптимизации без запуска профилировщика? ИМХО — Определенно Плохая Идея. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
учёба в данном случае разбивается на части ведь нас сначала учат решать квадратные уравнения, однако, сама идею решать квадратные уравнения без надобности в реальной работе тоже кажется несколько необычной, если не сказать вредной делается это для того, чтобы в случае появления подобной задачи человек уже владел этим инструментарием Добавлено через 3 минуты и 25 секунд ИМХО, здесь ситуация, как с изучением инстранного языка - человек должен уметь выражать свои мысли и понимать чужие даже если на данный момент нет англоязычного человека рядом, два русскоязычных человека садятся рядом и начинают общаться, хотя, если подумать реально, значительно проще передать эту информацию на русском -------------------- qqq |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 1 Всего: 317 |
Древний MS Word писал в свой .doc, изнутри больше похожий на файловую систему. Естественно в новых форматах от этого ушли, ресурсов больно много
Можно повторить путь гиганта, создать средний файл (растёт по мере надобности блоками), внутри разбить на небольшие блоки, связать в одно дерево (B+ tree). Дальше по задаче, можно при каждом сейве блок изменять (параллельное редактирование многими пользователями затруднительно), либо изобразить простенькую БД (даже с журналом можно -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |