1. Зачем архив? Там два файла, они полностью приведены :) Архивировать не обязательно, кстати.
2. Сбросится. Это то, что я и называю проблема «Persistence» см. 5 пункт в посте и тут предположения насчет решения: (инглиш) unitehowto.com/Persistence — если коротко, то скорее всего где-то в fileio и в более крутом случае — REST-совместимые key-value базы данных — Redis, CouchDB, Tokyo Tyrant.
1. самое простое, как уже сказали выше — просто запустить 2 процесса и дать им разные части задачи (учитывая, что у вас никакой синхронизации в проекте не было) и не геммороиться с распараллеливанием
2. multiprocessing (стандартный модуль c 2.6)
from multiprocessing import Process
p = Process(target=f, args=('bob',))
p.start()
p.join()
3. решение sin/cos и т.п. лежит в cython+gcc(mingw32 под винду) (cython — модуль, гуглить при необходимости: «cython sin») — избавляет от dictionary lookup'ов для названий функций за счет компиляции слегка модифицированного Python кода в Си.
Суть тут правда в том, что сервер не должен лежать, если он ложиться постоянно — его надо лечить, а не ждать пол-минуты. :) Так что это время по идее можно игнорировать.
Ну е-мое, ну это ж в каждом случае надо решать отдельно. Если у вас пять человек и 10 гигов памяти — ну сохраните всех в память, если у вас 10 гигов человек и две памяти — ну используйте БД или распределенную БД или key-value storage или распределенный key-value.
На самом деле kenga прав(а?) — для больших систем гораздо лучше флаг is_deleted — по очень многим причинам (и фрагментированность файла, и потенциальная возможность восстановления, и последовательность чтения и т.п. т.п. т.п.). Ну и да что-то типа алгоритмов vacuum'а применяется тоже иногда.
Да, отличные мысли. Только у нас по поводу библиотек разные подходы. Я предпочту написать одну-две строки #include <my_webtoolkit.h> и дать этому работать пока оно не начнет доставлять мне проблемы, а когда реальные проблемы начнутся — тогда переселю на реальный «nginx» или что-то подобное. Но я не говорю что мой подход верный — просто другой.
nginx и lighttpd тоже вещи «самописные», не забывайте ;)
2. Сбросится. Это то, что я и называю проблема «Persistence» см. 5 пункт в посте и тут предположения насчет решения: (инглиш) unitehowto.com/Persistence — если коротко, то скорее всего где-то в fileio и в более крутом случае — REST-совместимые key-value базы данных — Redis, CouchDB, Tokyo Tyrant.
На самом деле, в саму функцию лезть особо не надо будет, практически все, что нужно для типичных задач покрывают параметры, передаваемые ей.
2. multiprocessing (стандартный модуль c 2.6)
from multiprocessing import Process
p = Process(target=f, args=('bob',))
p.start()
p.join()
3. решение sin/cos и т.п. лежит в cython+gcc(mingw32 под винду) (cython — модуль, гуглить при необходимости: «cython sin») — избавляет от dictionary lookup'ов для названий функций за счет компиляции слегка модифицированного Python кода в Си.
pycurl спасет, гуглить «pycurl.CurlMulti»
на всякий случай и второй очевидный — где взять? :)
Суть тут правда в том, что сервер не должен лежать, если он ложиться постоянно — его надо лечить, а не ждать пол-минуты. :) Так что это время по идее можно игнорировать.
Ну е-мое, ну это ж в каждом случае надо решать отдельно. Если у вас пять человек и 10 гигов памяти — ну сохраните всех в память, если у вас 10 гигов человек и две памяти — ну используйте БД или распределенную БД или key-value storage или распределенный key-value.
Прям вопрос в духе: «Как сделать Гугл?»
nginx и lighttpd тоже вещи «самописные», не забывайте ;)
Или уж в настоящей key-value базе типа Tokyo Cabinet (1 миллион запросов в секунду реально дает)