Информация об изменениях

Сообщение Re[8]: чем заменить задачу по развороту списка от 21.10.2020 9:46

Изменено 21.10.2020 9:48 Pauel

Re[8]: чем заменить задачу по развороту списка
Здравствуйте, diez_p, Вы писали:

G>>Остальные типы задач — от лукавого. Лично я не вижу, как другие типы головоломок помогут понять, подходит кандидат, или нет.

G>>Да и задачи на мышление — спорная тема. Можно потратить кучу времени, завалить хорошего кандидата, который хорошо программирует но плохо решает задачи "про гномиков"

_>А потом вот эти люди пишут лютейшие интерфейсы c абсолютно не ортогональными методами, завязывают все компоненты в узел и перематывают это все скотчем. Вся алгоритмика задра..ся на раз. У меня знакомый чел, бывший UIщик, захотел писать под линукс на C++ и за 3 мес он алгоритмы выучил так, что сам порой мог интервьюверам вскипятить голову.


Задра..ся только базовый набор алгоритмов, а вот дальше нужно владеть мат-методами — например, вычислить, доказать ассимптотику. И вот это уже не задра..ся, а изучается долго и упорно при наличии знаний матана. Без матана эту тему не осилить.

_>Меня как-то спрашивали на UI, с какой частотой в винде таймер переключает потоки, я грю я хз,


Фактически, это непрямой вопрос на тему какой у тебя опыт в UI. Разумеется, если это единственный вопрос, то смысла в нём нет никакого. Многие считают, что выталкивание вычислений в другой тред это всегда хорошо. На самом деле в большинстве случаев плохо Жизнь так устроена. Вытакивать нужно только тяжелые вычисления. Тяжелые — зависит от задачи. Нет требований ко времени отклика, то и секундная задержка не является тяжелым вычислением. Есть всякие драг-н-дропы — 100мс это уже дико много.

Для UI Винды это была важная характеристика до недавних пор. Подчеркиваю — до недавних пор. Что бы правильно сорганизовать выталкивание вычислений в другой тред, нужно учитывать вот эту характеристику. Скажем, сделать годный плавный драг-н-дроп в тяжелом UI, нужно учитывать такие вот мелкие детали, соответсвенно часто в тяжелом софте драг-н-дроп написан через одно известное место.
Все вычисления, которые занимают один-два кванта времени нет смысла выталкивать в другой тред, т.к. суммарные издержки будут только больше.
Например, 40мс ты считаешь чего, еще столько же уходит на всякие переключения и тд. В итоге, твой UI имеет лаг в 80мс что уже существенно для точной UI операции, тот же драг-н-дроп.
80мс это всего 12 кадров. В этом случае нужно отказаться от другого потока и тупо выполнять вычисления в основном. Лаг будет всего 40 мс, но это 24 кадра.
Почему до недавних пор — по моему в 8ке или 10ке поменялся шедулинг и теперь все немного не так.
Re[8]: чем заменить задачу по развороту списка
Здравствуйте, diez_p, Вы писали:

G>>Остальные типы задач — от лукавого. Лично я не вижу, как другие типы головоломок помогут понять, подходит кандидат, или нет.

G>>Да и задачи на мышление — спорная тема. Можно потратить кучу времени, завалить хорошего кандидата, который хорошо программирует но плохо решает задачи "про гномиков"

_>А потом вот эти люди пишут лютейшие интерфейсы c абсолютно не ортогональными методами, завязывают все компоненты в узел и перематывают это все скотчем. Вся алгоритмика задра..ся на раз. У меня знакомый чел, бывший UIщик, захотел писать под линукс на C++ и за 3 мес он алгоритмы выучил так, что сам порой мог интервьюверам вскипятить голову.


Задра..ся только базовый набор алгоритмов, а вот дальше нужно владеть мат-методами — например, вычислить, доказать ассимптотику. И вот это уже не задра..ся, а изучается долго и упорно при наличии знаний матана. Без матана эту тему не осилить.

_>Меня как-то спрашивали на UI, с какой частотой в винде таймер переключает потоки, я грю я хз,


Фактически, это непрямой вопрос на тему какой у тебя опыт в UI. Разумеется, если это единственный вопрос, то смысла в нём нет никакого. Многие считают, что выталкивание вычислений в другой тред это всегда хорошо. На самом деле в большинстве случаев плохо Жизнь так устроена. Вытакивать нужно только тяжелые вычисления. Тяжелые — зависит от задачи. Нет требований ко времени отклика, то и секундная задержка не является тяжелым вычислением. Есть всякие драг-н-дропы — 100мс это уже дико много.

Для UI Винды это была важная характеристика до недавних пор. Подчеркиваю — до недавних пор. Что бы правильно сорганизовать выталкивание вычислений в другой тред, нужно учитывать вот эту характеристику. Скажем, сделать годный плавный драг-н-дроп в тяжелом UI, нужно учитывать такие вот мелкие детали, соответсвенно часто в тяжелом софте драг-н-дроп написан через одно известное место. Плавный — отрисовка >25 кадров в секунду, что дает нам пространство в 40мс.
Все вычисления, которые занимают один-два кванта времени нет смысла выталкивать в другой тред, т.к. суммарные издержки будут только больше.
Например, 40мс ты считаешь чего, еще столько же уходит на всякие переключения и тд. В итоге, твой UI имеет лаг в 80мс что уже существенно для точной UI операции, тот же драг-н-дроп.
80мс это всего 12 кадров. В этом случае нужно отказаться от другого потока и тупо выполнять вычисления в основном. Лаг будет всего 40 мс и это те самые 25 кадров.
Почему до недавних пор — по моему в 8ке или 10ке поменялся шедулинг и теперь все немного не так.