Производительность хранилища данных Python / Google app engine - PullRequest
1 голос
/ 22 марта 2011

В приложении для приложений на python / google у меня есть выбор между сохранением статических данных (размером в пару КБ) в локальном файле json / xml или помещением их в хранилище данных и запросом их оттуда.Данные созданы мной, поэтому проблем с плохо сформированными данными не возникает.В определенных терминах, таких как сохранение квоты, меньшее использование ресурсов и скорость приложения, какой метод лучше подходит для этого случая?

Я бы предположил, что использование simplejson для чтения из файла json было бы лучше, поскольку этот метод не требует запроса к хранилищу данных, хотя все еще достаточно быстр.

Приложение еще большене требует большого хранилища данных (в настоящее время ~ 400 КБ), поэтому стоило бы переместить все данные в файл json, чтобы обойти ограничения квот?

Ответы [ 3 ]

5 голосов
/ 22 марта 2011

Если ваши данные небольшие, статичные и редко меняются, вы получите лучшую производительность, просто записав свои данные как dict в свой собственный модуль и просто import там, где вам это нужно.Это позволит использовать тот факт, что Python будет кэшировать ваши модули при импорте.

1 голос
/ 23 марта 2011

Для превосходной производительности приложений, как указали Крис и другие, Python dict является лучшим.

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

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

0 голосов
/ 22 марта 2011

Быстрее хранить ваши данные в статическом файле, а не в хранилище данных. Как вы сказали, это экономит квоту хранилища данных, а также экономит время на поездки в хранилище данных.

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

...