В настоящее время я своя маленькая ORM, и перед мной стоит задача создания канонизирующего отображения, чтобы предотвратить загрузку одной и той же сущности из базы данных более одного раза.
В настоящее время используется HashMap < объект, слабая ссылка < объект > >
. Ключ является первичным ключом сопоставленного объекта базы данных ( ArrayList < Object >
, если это составной ключ), а значения - WeakReference < Object >
.
Моя главная проблема - как очистить карту? Если объект больше не используется, слабая ссылка на карте будет иметь значение null
, и я обнаружу это только при следующем поиске (или никогда, если я больше не буду искать объект вверх). Я мог бы сделать так, чтобы слабые ссылки регистрировались с помощью ReferureQueue
, когда они будут очищены, и затем проверять эту очередь каждый раз, когда я смотрю что-то вверх. Очищенная ссылка не даст мне никаких подсказок относительно того, какой объект был очищен, так что, я полагаю, мне придется подкласс WeakReference
, чтобы сохранить ключ на карте, так что я могу удалить его после очистки ссылки.
Это путь, или есть более простой способ реализовать это?
-121--1179710-Я знаю, что было много сообщений об этих двух, но подумал, что я решу вопиющий вопрос, который у меня есть. Наш дизайнер недавно отправил мне несколько файлов с 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.