Michael
для списка постов (1 абзац, дата и автор), для каждого поста разбиваем текст на абзацы и передаём массив постов, которые состоят из текста (наш первый абзац), дата и автор
Michael
чувствую себя капитаном очевидностью
KlonD90
и смысл в том чтобы не заниматься такими оптимизациями вообще
но всегда же можно выделить себе buffer и начать идти против системы. как это делают ребята в go
Pavel
Ребят а подскажите,видел где-то не давно красивый график различия версий node.js,нужен визуальный диф по версиям
Anonymous
для списка постов (1 абзац, дата и автор), для каждого поста разбиваем текст на абзацы и передаём массив постов, которые состоят из текста (наш первый абзац), дата и автор
Увы. не понимаю как выводить на общей странице только первый абзац у ВСЕХ ! постов а на странице поста все абзацы поста ((
Anonymous
один так один , но если человек нажал на перевод строки надо это как-то отобразить правильно
Kons
При сохранении обрабатывать текст и готовить из него некий brief или teaser. На главной странице показывать тизер, а на странице поста - полный текст.
ikasymov
пых и потоки?)) серьезно?
ну может процессы у них
Таймураз
ну может процессы у них
Ты либо напрямую запускаешь скрипт в пхп и получаешь результат работы этого скрипта, либо запрашиваешь cgi результат работы скрипта относительно запрошенного пути. Каждый новый запрос- это отдельный поток, который запускается отдельно от остальных потоков (процессов)
Таймураз
Из-за этого реалтайм приложения на пхп реализуются через задницу
ikasymov
Каждый новый запрос- это отдельный поток, который запускается отдельно от остальных потоков (процессов) такое еще к каким языкам относиться?
ikasymov
.net ?
Таймураз
.net компилируется в бинарник и запускается на сервере
Таймураз
У пхп есть несколько плюсов- популярные большие фреймворки и легкость запуска мелкого овна Но низкий порог вхождения- только минус имхо
ikasymov
в ноде один поток обрабатывает весь запрос
ikasymov
если засрать его блокирующим функцием, он засрется и будет ждать его в то время как другие клиенты запросы делают
Таймураз
Однобоко рассуждаешь Да, один запрос в одном потоке исполнения отрабатывает Но при этом этот поток исполнения обрабатывает тысячи запросов, тогда как в пхп 1 запрос = 1 поток
Таймураз
Пхп же сожрет всю память, зависни в нем пара сотен запросов
John
Из-за этого на малых нагрузках пыха быстрее, но на средних и больших уже нода
Таймураз
ikasymov
Пхп зависнет точно также
почему? создает другой поток который работает вне зависимо от ждущего. не?
Дима
cluster
Таймураз
почему? создает другой поток который работает вне зависимо от ждущего. не?
Есть такое понятие, как воркеры Ты обозначаешь максимум одновременно обрабатываемых запросов
Таймураз
И если в ноде все эти запросы могут висеть в памяти и обрабатываться параллельно, в пхп они обрабатываются синхронно
Таймураз
у тебя 4 ядра, 8 потоков = 8 воркеров 8 запросов повисли на запросе в базу- все, сервак висит
Таймураз
кластеризация
Таймураз
Напрямую в коде PM2 Docker
ikasymov
запрос на базу пошел, пришло ответил
Таймураз
как паралельно?
Гугли event loop
ikasymov
запрос на базу пошел, пришло ответил
пока ждеш вызываешь другие функции
ikasymov
пока ждеш вызываешь другие функции
это же не паралельность
Таймураз
Пока у тебя 100 запросов ожидает ответа от базы, другая сотня хочет узнать текущее время Получило время сервера и сразу ответило, пока остальная сотня все еще висит
Таймураз
Если ты маг пхп, выбрал оптимальное кол-во воркеров учитывая возможности сервака, чтобы у тебя не простаивали запросы (обычно кол-во потоков исполнения множат на степень двойки и тестируют под нагрузкой) Все равно есть вероятность, что все упрется в базу и начнут копиться запросы Наговнокодить и на ноде можно, но все равно нодовская архитектура исполнения лучше пхпшной
ikasymov
как на счет питона?
Таймураз
В целом, у питона лучшая математика и делать бек на питоне- хорошо
Anton
как на счет питона?
богаче выбор либ, они более качественные, имхо (по моему опыту / задачам)
John
И если в ноде все эти запросы могут висеть в памяти и обрабатываться параллельно, в пхп они обрабатываются синхронно
Так нода же не работает параллельно, она ставит все в очередь, если встретился какой-то блокирующий процесс, она оставляет коллбэк и ставит в очередь, выполняя другие операции, когда в коллбэк пришел ответ, нода возращается и выполняет результат, потом идёт к следующему в очереди. А пыха ж потоки выполняет параллельно, но в рамках одного потока синхронно, но каждый поток жрет оперативку
Таймураз
Да, я понял о чем вы)
Это мне был ответ?
John
Это мне был ответ?
Да, вам всем))
John
Это мне был ответ?
Я просто не глобально понял твой коммент
Таймураз
Я просто не глобально понял твой коммент
там не совсем параллельное исполнение Параллельность в рамках одного поотока исполнения
Таймураз
Забыл термин, к своему стыду
John
Была тут классная статейка, ща найду
ikasymov
я не давно делал парсер который циклом создовал обьект парсера и парсил, 10 обьектов парсера парсили одновременно, то есть вызваны все 10 а делаються конечно через event loop, в питоне или пхп создовались бы обьекты по очереди
ikasymov
Главное что б эти обьекты не мешали друг другу
John
Вот объяснение мне понравилось https://m.habrahabr.ru/post/150788/
ikasymov
да я читал)
ikasymov
не?
Serhiy
не?
https://docs.python.org/3.6/library/threading.html
Serhiy
т.е. даже вот так правильнее https://docs.python.org/3.6/library/concurrency.html
ikasymov
не юзал асинхронность в питоне)
Serhiy
А она там есть на любой вкус )
Anonymous
Ребят, всем привет. Подскажите, это не работает?
Anonymous
asnwer = JSON.parse(page.plainText); console.log('Answer: ' + answer.taskId);
Anonymous
page.plainText возвращает строку {'errorId':0, 'taskId':4599437}
Anonymous
Я ее разбираю через json.parse, но console.log('Answer: ' + answer.taskId); ничего не выводит
arts
У тебя опечатка: aSNwer
Anonymous
Спасибо огромное!
Anonymous
Невнимательность до добра не доведет
arts
Юзай eslint, он поможет избежать подобных ошибок.
ixplo
Или просто вебсторм )
arts
Eslint + vscode
Eslint + random ide/editor