Инструменты для тестирования / отладки / исправления проблем параллелизма PHP? - PullRequest
2 голосов
/ 16 сентября 2008

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

PHP кажется довольно плохим в инструментах, когда речь идет о параллелизме (потоки, кто-нибудь?), Поэтому я задаюсь вопросом, есть ли какие-либо решения для правильной проверки / отладки этого.

Я не хочу ждать, пока два пользователя не запросят два сценария, которые будут запускаться как параллельные процессы одновременно и вызвать проблему параллелизма, из-за которой у меня будет почесываться голова, или что я, возможно, даже не замечу, пока не начнется снежный ком clusterfsck.

Любая волшебная палочка параллелизма PHP, о которой я должен знать?

Ответы [ 3 ]

3 голосов
/ 16 сентября 2008

PHP не является языком, предназначенным для многопоточности, и я не думаю, что он когда-либо будет.

Если вам нужна функциональность мьютекса, в PHP есть семафор функций, которые вы можете скомпилировать.

Memcache не имеет возможности мьютекса, но его можно эмулировать с помощью метода Memcache :: add () .

Если вы используете базу данных MySQL и пытаетесь предотвратить какое-либо повреждение условий гонки, вы можете использовать оператор lock table или использовать транзакции .

1 голос
/ 16 сентября 2008

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

0 голосов
/ 16 сентября 2008

Не специально для этой проблемы, но: FirePHP ?

...