@prophp7

Страница 1286 из 1387
Александр
06.09.2018
17:53:50
function loadLines(): \Generator { yield from \file('./large_file.txt'); }

сек, некрасиво

function loadLines(): \Generator { yield from \file('./large_file.txt'); } function loadLines(): \Generator { $fp = fopen('./large_file.txt', 'rb'); while(($line = fgets($fp)) !== false) yield $line; fclose($fp); } echo \memory_get_usage(true) / 1024 / 1024, \PHP_EOL; $lines = loadLines(); echo \memory_get_usage(true) / 1024 / 1024, \PHP_EOL; foreach ($lines as $line) { # code... } echo \memory_get_usage(true) / 1024 / 1024, \PHP_EOL; echo \memory_get_peak_usage(true) / 1024 / 1024, \PHP_EOL;

вот 2 функции

Google
Александр
06.09.2018
17:54:41
с первой вывод: 2 2 21 41

со второй вывод: 2 2 23 43

что я делаю не так?

естественно я по очереди комментировал их)

я если что не для того чтобы посраться, мне разобраться интересно

Dmitry
06.09.2018
17:56:22
файл то какой размер?

Александр
06.09.2018
17:56:29
20 мб

Shmaltorhbooks
06.09.2018
17:58:00
fopen сам по себе читает не весь файл. он передвигает внутренний указатель на текущую позицию и читает по шагам

А file по документации читает весь. И если file - не генератор, то он сначала прочитает все в память, а потом отдаст

Александр
06.09.2018
17:58:54
почему тогда разницы в выполнении нет?

даже с fopen больше расходуется

Dmitry
06.09.2018
18:00:38
мне сложно сказать что ты делаешь не так, возможно запускаешь не так, или коментаришь не так или фал слишком маленький, что скрывается за какими-то другими расходами

Александр
06.09.2018
18:01:33
да, видимо косякнул

Google
Александр
06.09.2018
18:01:44
лол, я путь к файлу не тот скопировал

Dmitry
06.09.2018
18:02:03
echo memory_get_peak_usage(true) . "\n"; function loadLines(): \Generator { $fp = fopen(“../xxx”, "rb"); while ($line = fgets($fp)) { yield $line; } fclose($fp); } $i = 0; foreach (loadLines() as $line) { $i++; } echo memory_get_peak_usage(true) . "\n"; 2097152 6291456 echo memory_get_peak_usage(true) . "\n"; function loadLines(): \Generator { yield from file(“../xxx”); } $i = 0; foreach (loadLines() as $line) { $i++; } echo memory_get_peak_usage(true) . "\n"; 2097152 2286075904 вот тебе разница

блин что-то кривое оформление у меня

короче попробуй фал мегов на 100 хотя бы

Denis
06.09.2018
18:59:49
вопрос. почему когда foreach($generator as ..) вызывается через переменную, меньше памяти используется по сравнению когда сразу foreach(generator() as ..) ?

Dmitry
07.09.2018
06:45:26
Всем привет, подскажите можно ли настроить phpstorm или PHP-CS что бы проверялся порядок namespace в файле?

Herman
07.09.2018
08:36:31
ну да
https://prnt.sc/krmcrn оно?

ivan
07.09.2018
08:36:39
ну да
ctrl+atl+shift+l - reformat dialog. checkbox Optimize import http://imagizer.imageshack.com/img922/9763/aMBaYe.png

Dmitry
07.09.2018
08:38:24
не это не то ((( Мне нужен вот такой порядок 1. use фрейма 2. use вендоров 3. use приложения

Maksim
07.09.2018
08:39:44
не это не то ((( Мне нужен вот такой порядок 1. use фрейма 2. use вендоров 3. use приложения
года 2 назад таким же страдал) неблагодарное и бесполезно занятие, как оказалось)

Dmitry
07.09.2018
08:40:18
нафига ?
требования к оформлению кода

Maksim
07.09.2018
08:40:53
так и не победил? руками расставлял?
расставлял руками, а потом, так и не увидев практического смысла, положил болт

Dmitry
07.09.2018
08:41:25
расставлял руками, а потом, так и не увидев практического смысла, положил болт
ну вот я тоже не вижу. Но корифеи на проекте говорят надо :)

Dmitry
07.09.2018
08:42:10
аргументация?
удобно смореть что откуда юзается и так уже исторически сложилось

Maksim
07.09.2018
08:42:49
удобно смореть что откуда юзается и так уже исторически сложилось
а ещё можно по алфавиту сортировать сгруппированные импорты :)

Google
knopkod4v
07.09.2018
08:43:17
а ещё можно по алфавиту сортировать сгруппированные импорты :)
вот только хотел про это написать. Так удобнее искать. С другой стороны есть ctrl+f

militska
07.09.2018
08:43:21
или по размеру строчки, что бы ровненько получилось...)

Maksim
07.09.2018
08:43:47
вот только хотел про это написать. Так удобнее искать. С другой стороны есть ctrl+f
удобнее искать?) 99.9% времени у тебя импорты просто свёрнуты будут. Чё ты там искать собрался?)

Dmitry
07.09.2018
08:43:51
ну со своим уставом в чужой монастырь не хоят :)

Maksim
07.09.2018
08:44:02
на самом деле, выхлопа нету из этого. Лишний геморрой и АБСОЛЮТНО бесполезная трата времени)

Dmitry
07.09.2018
08:44:43
согласен, мне проще ctrl+o и не парится. Но на ревью заварачивают из-за этого

Maksim
07.09.2018
08:45:38
согласен, мне проще ctrl+o и не парится. Но на ревью заварачивают из-за этого
просто надо сесть и подсчитать, скок времени разрабы тратят на херню по украшению импортов :)

knopkod4v
07.09.2018
08:45:39
удобнее искать?) 99.9% времени у тебя импорты просто свёрнуты будут. Чё ты там искать собрался?)
хз на самом деле. По идее контрол+клик должен решать все проблемы, но почему-то я искал. Надо последить за собой =\

Dmitry
07.09.2018
08:46:37
просто надо сесть и подсчитать, скок времени разрабы тратят на херню по украшению импортов :)
в целом конечно не много, я перед пушем просматриваю все. Но все равно гемор

Maksim
07.09.2018
08:47:32
в целом конечно не много, я перед пушем просматриваю все. Но все равно гемор
а теперь это немного помнож на сколько-нибудь вменяемый отрезок времени, а затем ещё минимум на 2. Потому, что за тобой это ещё проверяет другой. А если из-за этого ревью не пройдёт, то можно ещё на 2 помножить.

knopkod4v
07.09.2018
08:47:36
в пхпшторме вроде вроде ещё есть прикольная фича - удаление неиспользуемых импортов, я как-то жмакнул =\

Dmitry
07.09.2018
08:48:35
в пхпшторме вроде вроде ещё есть прикольная фича - удаление неиспользуемых импортов, я как-то жмакнул =\
вот я ее юзаю, ctrl+o. Но она ко всему еще сортирует импорты по алфавиту(можно конечно отключить)

knopkod4v
07.09.2018
08:49:16
вот я ее юзаю, ctrl+o. Но она ко всему еще сортирует импорты по алфавиту(можно конечно отключить)
просто у меня оно используемый как-то раз удалило =( Поэтому я как-то опасаюсь теперь

Nurik
07.09.2018
08:54:13
Всем привет, ребят поделитесь опытом. Кто делал pub/sub поверх Postgres Notify, Listen, Trigger ?

Насколько это эффективно ?

Maksim
07.09.2018
08:54:25
не эффективно, не надёжно, тратить время не стоит :)

listen\notify ок годится для всякой статистики, имхо. не более. Завязывать на него логику - так се идея

у меня на текущий момент используется rabbitmq, как основная очередь для pub\sub, и подписка на пару таблиц в постгре. Но события из постгри слушает отдельный демон и с небольшими исправлениями\добавлениями отправляет в кролика. Такая вот дикая ректальная схемка.

Google
Nurik
07.09.2018
09:08:28
http://blog.sagemath.com/2017/02/09/rethinkdb-vs-postgres.html

Maksim
07.09.2018
09:11:40
Понял)
Если поиграться захочется, то вот: https://github.com/amphp/postgres/blob/master/examples/multi-listen.php

Sergey
07.09.2018
09:12:30
просто у меня выходитт наоборот (за счет тотго что надо хранить еще одну переменную

Admin
ERROR: S client not available

Denis
07.09.2018
09:17:25
Get peak usage

Maksim
07.09.2018
09:19:00
Благодарю.
но не стоит на это логику вязать. Это путь в бездну

Nurik
07.09.2018
09:20:29
но не стоит на это логику вязать. Это путь в бездну
А есть какие-нибудь проверенные решения для задач, где нужно постоянное наблюдение за коллекциями в реальном времени ? Главный критерий — надежность.

Maksim
07.09.2018
09:21:04
ну типа обновил, затем запаблишил эвент.

Nurik
07.09.2018
09:29:26
Ну это не очень надежно просто, все ложится на руки разработчиков. Но зато масштабировать легче.

+ еще синкать стейт нужно.

Maksim
07.09.2018
09:30:49
это вполне надёжно, ибо выполняется внутри транзакции

Nurik
07.09.2018
09:31:02
паблишить событие об обновлении в кролика и подписываться на него же
А какие архитектурные паттерны обычно используют для такого подхода ?

Maksim
07.09.2018
09:32:12
$transaction->start(); try { $transaction->update($collection); $transport->publish($event); $transaction->commit(); } catch(\Throwable $throwable) { $transaction->rollback(); }

либо всё, либо ничего. Надёжнее некуда

Google
Maksim
07.09.2018
09:36:45
это Нурику
он так-то про него сам говорил) вот меня и смутило)

Nurik
07.09.2018
09:37:31
хз что ты имеешь в виду
Ну я имел ввиду, используя какие подходы можно гарантировать, что при любых исходах событие об изменении будет получено клиентом. Т.е. делать ack в rabbitmq только при условии что был получен JSON-RPC ответ что он получил изменения ?

Maksim
07.09.2018
09:37:53
получил сообщеньку, акнул, чёт сделал - профит получил сообщеньку, акнул, чёт не сделал - вернул в очередь

так или иначе сообщение будет получено клиентом, если оно было отправлено сервером)

Valentin
07.09.2018
09:45:56
Оффтоп: в Беларуси есть какой то номер из налоговой типа PESEL / номер налогоплательщика? Как он называется? Спасибо

Anton
07.09.2018
09:51:55
УНП

Maksim
07.09.2018
09:52:56
УНП
а он разве не для юрлиц только?

Anton
07.09.2018
09:53:19
У Физлиц кроме Личного номера ничего нет

Maksim
07.09.2018
09:53:21
ну и ипшников до кучи

а личный номер как-то корелирует с зелёненькой карточкой?) блин, нахер так жить, в 30 лет не знать свой порядковый номер :)

Anton
07.09.2018
09:55:17
да, тот который расшифровать еще можно. и вытянуть пол, дату рождения

Maksim
07.09.2018
09:55:26
надо найти будет, куда я её засунул и посмотреть) просто в рф есть ИНН у всех

так, для общего развития узнал, спасибо) а то не патриотично знать инн и не знать личный номер :)))

Страница 1286 из 1387