Возможно, эти объекты сами протекают. Попробуйте ради эксперимента создать в цикле множество экземпляров объекта, сделать с ними те же действия, что в функции, затем удалить их. Замерить память перед созданием объектов и после их удаления.
Для разметки документа используется HTML, для описания внешнего вида (размеров, цветов, шрифтов) элементов - CSS, а для действий и интерактивности на странице - JS
Проще всего на стороне БД отфильтровать, особенно если выставить индекс на поле, по которому происходит фильтрация. Индексы помогают не считывать с диска всю таблицу, а только нужные строки, попадаемые под критерий, а операция считывания с диска одна из самых тяжёлых со стороны сервера.
Я загружаемые юзерами файлы обычно называю по sha1 от содержимого, заодно и дедупликация получается в том случае, если два раза будет загружен один и тот же файл.
Причём хэш от файла просчитываю перед загрузкой ещё и на клиенте, чтобы можно было отловить дубликат, не загружая сам файл (на сервере обязательно хэш перепроверить, ибо клиент может намеренно солгать).
Зависит от того, какой Document resolution. Выбирается в Image->Image size или при создании документа. Чтобы 1px = 1pt, должно быть 72 пикселей/дюйм, если не ошибаюсь.