2016-05-24 3 views
0

Я пишу «webapp» для личного использования, предназначенный для работы с моим собственным компьютером в качестве сервера. Это в основном приятный интерфейс для визуализации данных. Это приложение должно манипулировать большими матрицами - около 100 МБ - в Python и возвращать результаты вычислений в браузер для визуализации. В настоящее время я просто храню данные в файле csv и загружаю его в панды каждый раз, когда хочу его использовать, но это очень медленно (около 15 секунд). Есть ли способ, чтобы этот объект (pandas.DataFrame) сохранялся в памяти, или это не имеет смысла?Хранение больших файлов, загруженных в Flask

Я пробовал memcached, и я не думаю, что это уместно. Я также попытался использовать Redis, но чтение из кеша на самом деле такое же, как чтение файла, если я храню каждую строку матрицы под своим собственным ключом, и если я сохраню все это в строке под тем же ключом, а затем восстановит массив из строки так же медленно, как чтение его из файла csv. Так что никакого выигрыша в любом случае.

+0

Выполняют ли операции изменения данных? – davidism

+0

действительно ли файл должен быть таким большим? вы можете разбить файл на несколько, чтобы вы могли «куски» загружать файлы меньшего размера и загружать разные в фоновом режиме, так что, когда вам нужен другой раздел, его готовность – g19fanatic

ответ

0

Учитывая приложение, как предполагается, будет работать на вашем компьютере есть 2 варианта вы можете попробовать:

  1. структура данных FileStorage Используйте WERKZEUG в http://werkzeug.pocoo.org/docs/0.11/datastructures/#werkzeug.datastructures.FileStorage
  2. Получить SQLite работает в какой-то оперативной памяти файловой системы. Это позволит также быстрее изменять данные.
Смежные вопросы