На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование под PalmOS"
Правила раздела просты:
1. Будьте вежливыми.
2. Задавате вопросы только по теме. Пользовательские вопросы (у меня не работает пальм) являются оффтопиком. Пользуйтесь конференциями palmz.in, hpc.ru, ihand.ru .
3. Поиск вареза запрещен.
4. Пользуйтесь поиском. Не надейтесь, что кому-то доставляет удовольствие отвечать в сотый раз на один и тот же вопрос.
  
> Память
    Добрый день, дамы и господа.

    Вот есть у меня такой вопрос... что доки мне вряд ли помогут.
    Дело касается good practice, но в palmos companion я такого не нашел.

    И так описываю ситуацию на примере ОС для ПК:
    Есть класс. Создаем его энзекпляр. Параметризуем его источником данных (файл
    на диске), он загружает свои основные свойства. Пользуясь значениями
    основных свойств, вычисляет неосновные (для оптимизации по времени когда
    нужны будут неосновные свойства). Вот так.

    А теперь на примере палм ОС. Есть база данных. В каждой записи хранятся
    значения основных свойств. Если я, как и на ПК создам энзекпляр класса,
    загружу туда основные свойства и вычислю значения не основных - это будет не
    эффективно. Так как в palmos companion написано, что чаще всего данные
    редактируются in place.

    Вот что я придумал: создаю энзекпляр класа. Параметризую его "ссылкой" на
    запись. Из основных свойств объект вычисляет неосновные и сохраняет их в
    себе. Т.е. объект хранит только "ссылку" на запись и неосновные свойства.
    Когда объект спрашивают о его основных свойствах он лезет в запись и
    возвращает значение.
    Теперь вопрос: чем может быть эта "ссылка".
    Я думаю вариантов несколько:
    1. Уникальный идентификатор записи - но при доступе по иду требуется поиск.
    Т.е. при obj.one_base_property - будет произведен поиск.
    2. Индекс записи - но при добавлении/удалении записей в БД индекс может
    стать неверным.
    3. MemHandle записи - мне кажется наиболее хороший вариант. При этом запись
    блокируется, но это не есть плохо. Спрашивается, зачем другим участкам кода
    что-то делать с записью, если для доступа к ней создан специальный объект?
    Но насколько я понимаю при этом заголовок БД (точнее список записей в
    заголовке БД) становится неперемещаемым.
    4. MemPtr записи - но тогда запись становится не перемещаемой (в целях
    дефрагментации памяти).

    Я остановился на варианте 3.
    Не подскажите как лучше сделать??

    Заранее благодарен.
    Петраковский А.В.
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0407 ]   [ 15 queries used ]   [ Generated: 8.05.24, 02:02 GMT ]