Вполне ожидаемо Тель-Авив топ-2 из городов в мире кроме США в рейтинге привлекательности по реальным доходам. А с учётом того что там можно найти работу без знания иврита — так вообще :)
уже это выдает всю бредовость подхода.
Тель-Авив по населению примерно как Николаев с инфраструктурой, я полагаю, где-то на уровне Львова/Харькова.
с таким подходом какая-нибудь Экваториальная Африка + удаленка на США/ЕС за 50-60к и можно жить как король, да еще и почти всё в карман. тратить то не на что.
топ вариант, чего уж там.
это, конечно, очень интересно, но мерять частный рабочий набор — немного не то,
drive.google.com/...I3_NgKT_J1WXI1WXliVVlUYjg
пустой текст у ссылки на /jobs на вашем сайте это пасхалка или потеряли?
drive.google.com/...I3_NgKT_J1SVp0VUxFUzBUVG8
скорей всего это мартышкин труд, в большинстве высокоуровневых языков компилятор/транслятор сам развернет линейную рекурсию в цикл.
тогда да, обидно.
в php json_decode(file_get_contents(’data.json’)); файла размером в 500мб отожрет где-то так полтора гб.
тем более есть же вещи, типа habrahabr.ru/post/280262 , которые неплохо обгоняют Spl.
хотя да, конкретно этот пример уже, увы, для php7.
ну и производительность скорей всего будет примерно как на php7.
вообще жаль, что php7 не успел к вам.
хотя, может, я слишком враждебно отношусь ко всяким KPHP и HHVM.
ну всегда можно взять что-то такое, например, github.com/...lsify/jsonstreamingparser и писать сразу в кеш.
Мы с вами обсуждаем разный pthreads (github.com/krakjoe/pthreads)
pthreads в php один. и пусть мы говорим о разных версиях (вы о 2.*, я о 3.*), тем не менее pthreads не создает процессы и не создавал, чем выгодно отличается от варианта с pcntl_fork().
я вращал на 8гб ram пул на 1024 воркера (итого 2048 потоков вместе с задачами).
очевидно, что практик.
github.com/clue/php-buzz-react
$loop = Factory::create();
$client1 = new Browser($loop);
$client2 = new Browser($loop);
$client1
->get($uri1_1)
->then(function ($response) use ($client1) {
var_dump((string)$request->getBody());
return $client1->get($uri1_2);
})
->then(function ($response) use ($client1) {
var_dump((string)$request->getBody());
});
$client2
->get($uri2_1)
->then(function ($response) use ($client2) {
var_dump((string)$request->getBody());
return $client2->get($uri2_2);
})
->then(function ($response) use ($client2) {
var_dump((string)$request->getBody());
});
$loop->run();
та много чего существует.
есть тот же libuv. страшный и ужасный, но вполне работает.
есть два варианта неблокирующих сокетов.
Отсутствие нативной асинхронности
Вы можете создать ее искусственно, можете прибегнуть к помощи экстеншена pthreads
насчем с того, что pthreads никакого отношения к асинхронности не имеет, а так же того, что следуюет отличать асинхронность и параллельность.
Например, pthreads, создавая новый поток, делает форк самого процесса. В нем создается отдельный поток. При этом вместе с форком клонируются уже используемые процессом серверные ресурсы, а именно — память. То есть формально появляется два потока, и фактически они «съедают» ресурсов как два полноценных процесса.
боже, как всё плохо. pthreads не форкает процессы. pthreads никакого вообще отношения к процессам не имеет. вы несете херню, а я читаю ее со слезами на глазах.
когда вы создаете тред, создается один тред.
когда вы запускаете пулл с воркерами, то максимум, что создастся это количество воркеров по размеру пула + количество задач по размеру пула.
$pool = new Pool(32);
while (true) {
$pool->submit(new Task());
}доведет количество тредов до 64 и всё. Каждый воркер скоро будет «съедать» по 30 MB оперативной памяти, и даже если взять сервер с 32 GB оперативной памяти, этих ресурсов хватит на сотню воркеров.
php жрет крайне мало памяти, сравнивая с той же node.js.
да о чем вообще речь, я вращал на 8гб ram пул на 1024 воркера (итого 2048 потоков вместе с задачами).
Увеличивая объем памяти, проблему решить не получится: вы упретесь в процессорное время. Получается, что для выполнения длительных задач на PHP на одном сервере возникает ограничение в 100 параллельных потоков, если говорить про долгие потоки, блокирующие I/O.
не получается. потоки с блокирующими задачами (например, запросы к другим серверам) тупо висят в памяти и ждут, пока придут данные. и уж точно не отъедают процессорное время.
PHP потребляет очень много памяти, это не будет открытием для PHP-разработчиков.
очень много в сравнении с чем?
пустой процесс node.js жрет ~40-50мб, консольный helloworld на c# жрет ~30мб.
helloworld на php будет кушать ~5мб.
Когда дело доходит до огромных коллекций данных, которые в PHP можно использовать только с помощью массивов
SplDoublyLinkedList, SplStack, SplQueue, SplHeap, SplMaxHeap, SplMinHeap, SplPriorityQueue, SplFixedArray, SplObjectStorage. не?
скорей всего ваша задача состояла в том, чтоб собрать данные с нескольких серверов и выдать пользователю, для чего даже pthreads нахрен не нужен. хватило бы неблокирующих сокетов (о которых вы, похоже, не слышали) для которых в php есть два прекрасных core extensions, для которых есть куча врапперов в виде того же reactphp.
да что уж там, ниже справедливо подметили про асинхронный curl.
Сайти, що займаються криміналом — баняться
не то, чтоб я поддерживал весь этот кипишь с блокировками, но давайте будем честны — вк и ок это рассадники пиратского контента, а нарушение авторских прав это статья уголовного кодекса
gjllth;bdf.
та я стараюсь все, что ставлю «скорей всего не на всю жизнь», ставить в песочницу, а то потом оказывается вдруг, что приложение чистить за собой AppData не учили.
это те, которых в парламенте нет и при нашей с вами жизни там вряд ли появятся.
есть голубятня, в которой этот голубь вырос, жил и, быть может, уже успел обзавестись женой-голубкой и детишками-голубками. потом голубя берут, садят в клеточку и везут с собой.
а когда нужно отправить письмо домой, то цепляют ему письмо и отпускают. голубь возвращается к родной голубятне с ценным грузом.
по работе скайп и почта.
в связи с тем, что скайп может неожиданно уйти в себя, то держу резервные вибер, вацап и хенгаутс, но практически их не использую.
для личного общения скайп, тг и вк (на телефоне кейт мобайл)
это что-то в духе gtk.php.net и phpqt.ru ?
после его использования так же нужно исповедаться, а лучше пройти обряд экзорцизма?