Как реализовать канонизирующее отображение в Java?

В настоящее время я своя маленькая ORM, и перед мной стоит задача создания канонизирующего отображения, чтобы предотвратить загрузку одной и той же сущности из базы данных более одного раза.

В настоящее время используется HashMap < объект, слабая ссылка < объект > > . Ключ является первичным ключом сопоставленного объекта базы данных ( ArrayList < Object > , если это составной ключ), а значения - WeakReference < Object > .

Моя главная проблема - как очистить карту? Если объект больше не используется, слабая ссылка на карте будет иметь значение null , и я обнаружу это только при следующем поиске (или никогда, если я больше не буду искать объект вверх). Я мог бы сделать так, чтобы слабые ссылки регистрировались с помощью ReferureQueue , когда они будут очищены, и затем проверять эту очередь каждый раз, когда я смотрю что-то вверх. Очищенная ссылка не даст мне никаких подсказок относительно того, какой объект был очищен, так что, я полагаю, мне придется подкласс WeakReference , чтобы сохранить ключ на карте, так что я могу удалить его после очистки ссылки.

Это путь, или есть более простой способ реализовать это?

-121--1179710- FPDF.php ~ в 20 раз меньше файлов, чем TCPDF.php? Почему? Я знаю, что было много сообщений об этих двух, но подумал, что я решу вопиющий вопрос, который у меня есть. Наш дизайнер недавно прислал мне несколько файлов с TCPDF, которые уже связаны, потому что друг...

Я знаю, что было много сообщений об этих двух, но подумал, что я решу вопиющий вопрос, который у меня есть. Наш дизайнер недавно отправил мне несколько файлов с TCPDF, которые уже связаны, потому что его друг сказал, что это «лучше.»

В прошлом мы использовали FPDF для всего PDF-генерации в PHP, но прямо перед битой я заметил огромную вопиющую разницу:

Filesize of fpdf.php: 46KB

filesize of tcpdf.php: 996 KB

примечание: размеры файлов выше принадлежат фактическому php-файлу, а не PDF

У меня не слишком много терпения, чтобы сесть и посмотреть на все различия между ними, но, кажется, это не стоит переключения действительно для огромной разницы файлов. Большинство на SO, кажется, действительно нравится TCPDF, но что дает?

Главный вопрос

Почему разница в размере и должен ли я беспокоиться за мой сервер, чтобы загрузить 1MB файл сотни или тысячи раз в день против 50KB файла, который делает почти то же самое? Я НЕ говорю, что мой PDF-файл больше здесь людей. Файл самого скрипта PHP является 1MB для 40Kb.

10
задан JM4 3 October 2011 в 19:29
поделиться