Если вы хотите поместить квадрат в окно просмотра на любом портретном или альбомном представлении (насколько это возможно, но ничего не торчит снаружи), переключитесь между использованием vw
/ vh
в ориентации portrait
/ landscape
:
@media (orientation:portrait ) {
.square {
width :100vw;
height:100vw;
}
}
@media (orientation:landscape) {
.square {
width :100vh;
height:100vh;
}
}
Это очень старая проблема, и по большей части больше не существует. Ядро Linux (за последние несколько лет) претерпело ряд изменений в способе обработки и маршрутизации пакетов по сетевому стеку, а также включает множество оптимизаций для обеспечения как низкой задержки, так и справедливости (то есть минимизации простоя).
При этом система select имеет ряд проблем с масштабируемостью просто из-за своего API. Когда у вас есть большое количество файловых дескрипторов, стоимость вызова select очень высока. Это в первую очередь связано с необходимостью создавать, проверять и поддерживать наборы FD, которые передаются системному вызову и от него.
В настоящее время предпочтительным способом выполнения асинхронного ввода-вывода является epoll . API намного проще и прекрасно масштабируется для различных типов нагрузки (много соединений, большая пропускная способность и т. Д.)