Для меня я удалил android-support-v4.jar из папки lib, а также удален из пути сборки.
В вариантах UNIX процессы намного легче. Процессы Windows тяжелы и требуют гораздо больше времени для запуска. Потоки - это рекомендуемый способ многопроцессорной обработки в Windows.
Документация python для многопроцессорной обработки обвиняет отсутствие os.fork () в проблемах в Windows. Это может быть применимо здесь.
Посмотрите, что происходит, когда вы импортируете psyco. Во-первых, easy_install it:
C:\Users\hughdbrown>\Python26\scripts\easy_install.exe psyco
Searching for psyco
Best match: psyco 1.6
Adding psyco 1.6 to easy-install.pth file
Using c:\python26\lib\site-packages
Processing dependencies for psyco
Finished processing dependencies for psyco
Добавьте это в начало вашего скрипта python:
import psyco
psyco.full()
Я получаю эти результаты без:
serialrun took 1191.000 ms
parallelrun took 3738.000 ms
threadedrun took 2728.000 ms
Я получаю эти результаты с:
serialrun took 43.000 ms
parallelrun took 3650.000 ms
threadedrun took 265.000 ms
Parallel все еще медленный, но другие сжигают резину.
Изменить: также попробуйте с многопроцессорным пулом. (Я пробую это впервые, и это так быстро, что, должно быть, я чего-то упускаю.)
@print_timing
def parallelpoolrun(reps):
pool = multiprocessing.Pool(processes=4)
result = pool.apply_async(counter, (reps,))
Результаты:
C:\Users\hughdbrown\Documents\python\StackOverflow>python 1289813.py
serialrun took 57.000 ms
parallelrun took 3716.000 ms
parallelpoolrun took 128.000 ms
threadedrun took 58.000 ms
В настоящее время ваша функция counter () не сильно изменяет состояние. Попробуйте изменить counter () так, чтобы он изменял многие страницы памяти. Затем запустите цикл, связанный с процессором. Посмотрите, существует ли по-прежнему большая разница между Linux и Windows.
Я сейчас не использую python 2.6, поэтому я не могу попробовать его сам.
Говорят, что создание процессов в Windows дороже, чем в Linux. Если вы поищете по сайту, вы найдете некоторую информацию. Вот один , который я нашел легко.