Содержание

Как найти наибольшую степень на 2 меньше заданного числа

Вы можете исключить наименее значимый бит в n до тех пор, пока n не станет степенью 2. Вы можете использовать побитовый оператор AND с n и n-1, что исключит наименее значимый бит в n до тех пор, пока n не будет иметь степень 2. Если изначально n будет иметь степень 2, то все, что вам нужно будет сделать, это уменьшить n на 1.

public class MathPow{
   public int largestPowerOf2(int n){
      if((n & n-1) == 0){ //this checks if n is a power of 2
         n--; //Since n is a power of 2 we have to subtract 1
      }
      while((n & n-1) != 0){ //the while will keep on going until n is a power of 2, in which case n will only have 1 bit on which is the maximum power of 2 less than n. You could eliminate the != 0 but just for clarity I left it in
         n = n & n-1; //we will then perform the bitwise operation AND with n and n-1 to eliminate the least significant bit of n 
      }
      return n;
   }
}

EXPLANATION :

Когда у вас есть число n (которое не является степенью 2), самая большая степень 2, которая меньше n, всегда является самым значимым битом в n. В случае числа n, имеющего степень 2, наибольшая степень 2 меньше n-это бит непосредственно перед единственным битом, включенным в n.

Например, если бы у нас было 8 (что равно 2 в 3-й степени), его двоичное представление равно 1 0 00 0, выделенное жирным шрифтом, было бы наибольшей степенью 2 перед n. Поскольку мы знаем, что каждая цифра в двоичном коде представляет степень 2, то, если у нас есть n в качестве числа, которое имеет степень 2, наибольшая степень 2 меньше n будет степенью 2 перед ним, которая будет битом перед единственным битом в n.

С числом n, которое не является степенью 2 и не равно 0, мы знаем, что в двоичном представлении n будет иметь различные биты, эти биты будут представлять только сумму различных степеней 2, наиболее важным из которых будет самый значимый бит. Тогда мы могли бы сделать вывод, что n-это только самый значимый бит плюс некоторые другие биты. Поскольку n представлено в определенной длине битов, и самый значимый бит-это самая высокая степень 2, которую мы можем представить с таким количеством битов, но это также самое низкое число, которое мы можем представить с таким количеством битов, то мы можем заключить, что самый значимый бит-это самая высокая степень 2 ниже n, потому что если мы добавим еще один бит для представления следующей степени 2, у нас будет степень 2 больше n.

EXAMPLES :

Например, если бы у нас было 168 (что равно 10101000 в двоичном коде), то while взял бы 168 и вычитал 1, что равно 167 (что равно 10100111 в двоичном коде). Затем мы бы сделали побитовое AND для обоих чисел.
Пример:

  10101000
& 10100111
------------
  10100000

Теперь у нас есть двоичное число 10100000. Если мы вычитаем из него 1 и используем побитовое AND для обоих чисел, мы получим 10000000, что равно 128, что равно 2 в степени 7.

Пример:

  10100000
& 10011111
-------------
  10000000

Если бы n изначально было степенью 2, то мы должны были бы вычесть 1 из n. Например, если бы n было 16, что равно 10000 в двоичном коде, мы бы вычитали 1, что оставило бы нас с 15, что равно 1111 в двоичном коде, и мы храним его в n (что и делает if). Затем мы перейдем к while, который выполняет побитовый оператор AND с n и n-1, который будет be 15 (в двоичном 1111) & 14 (в двоичном 1110).

Пример:

  1111
& 1110
--------
  1110

Теперь у нас осталось 14. Затем мы выполняем побитовое AND с n и n-1, что равно 14 (двоичный 1110) & 13 (двоичный 1101).

Пример:

  1110
& 1101
---------
  1100

Теперь у нас есть 12, и нам нужно устранить только один последний наименее значимый бит. Опять же, затем мы выполняем побитовое AND на n и n-1, что равно 12 (в двоичном 1100) и 11 (в двоичном 1011).

Пример

  1100
& 1011
--------
  1000

В конце концов у нас остается 8, что является наибольшей силой 2 меньше, чем 16.

В России за семь дней выявили на 2% меньше заболевших ковидом, чем неделей ранее

Распространение коронавируса в России продолжает замедляться – на этой неделе в стране выявили на 2,3% меньше заразившихся, чем на прошлой, следует из подсчетов ТАСС на основе данных федерального оперативного штаба по борьбе с новой инфекцией.

ТАСС собрал ключевую статистику эпидемии за последние семь дней.

Распространение

Число подтвержденных случаев заражения в стране за неделю возросло на 66 261 против 67 832 за предыдущие семь дней. В общей сложности с начала пандемии, по информации штаба, заразились 4 456 869 человек, или чуть более 3% населения России.

При этом с 15 по 21 марта в стране ни разу не выявляли больше 10 000 инфицированных в сутки, а в среду, 17 марта, число новых случаев впервые с начала октября прошлого года оказалось меньше 9 000.

Показатель заболеваемости в пересчете на численность населения на этой неделе опустился ниже 6,5 случая в день на 100 000 жителей, свидетельствуют подсчеты ТАСС. Это минимум с 5 октября 2020 года.

Коэффициент распространения коронавируса в стране держится близко к единице. Если в прошлое воскресенье он составлял 0,99, то в это – 1,01.

Выздоровевшие

Количество выздоровевших после заражения коронавирусом в России в последние недели стабильно превышает число заболевших. С 15 по 21 марта, по данным штаба, вылечились 74 266 человек (против 83 205 с 8 по 14 марта).

Доля уже выздоровевших продолжает медленно расти: за неделю она выросла с 91% до 91,3%.

Параллельно сокращается число так называемых активных случаев, то есть пациентов, которые проходят лечение в данный момент. За семь дней оно снизилось на 10 945, до 292 444 – минимального уровня с 16 октября прошлого года.

Умершие

С 15 по 21 марта штаб зарегистрировал в России 2 940 смертей из-за коронавируса – ненамного меньше, чем неделей ранее, когда стало известно о 2 996 летальных исходах.

В общей сложности с начала пандемии, по его данным, в стране умерли 95 030 заболевших, а условная летальность новой инфекции достигла 2,13%. Это близко к среднему показателю по миру, который на этой неделе составил 2,2%.

При этом следует иметь в виду, что данные штаба являются неполными: он учитывает только те случаи, когда коронавирус стал основной причиной смерти и это удалось оперативно подтвердить.

Основные очаги

Главными очагами эпидемии в России остаются Москва, Санкт-Петербург и Подмосковье, на которые на этой неделе пришлось в общей сложности 32,5% новых случаев заражения в стране.

Ситуация в этих регионах развивается по-разному: если в Санкт-Петербурге заболеваемость продолжает снижаться, то в Москве и Московской области число заболевших превысило показатели прошлой недели.

Так, в Москве, по данным штаба, выявили 11 069 инфицированных против 9 999 за предыдущие семь дней, а в Подмосковье – 4 069 против 3 608. В Петербурге подтвердили 6 654 случая заражения – почти на 4% меньше, чем неделей ранее, а в последние два дня в городе выявляют меньше 900 заразившихся в сутки.

В остальной России

Число выявляемых случаев заражения в России в целом продолжает снижаться. На этой неделе оно превысило показатели предыдущей только в двух из восьми федеральных округов – Центральном (на 2,9%) и Северо-Кавказском (на 2,8%).

При этом на Дальнем Востоке оно сократилось сразу на 13,3%, в Южном федеральном округе – на 7,4%, в Приволжье – на 6%. Меньшим оказалось снижение на Урале (4,7%), в Северо-Западном федеральном округе (4,1%) и в Сибири (на 3%).

Почему владимирцы стали меньше мусорить? Спойлер: потому что стали беднее

Неожиданный экологический эффект от корона-кризиса — жители России стали производить меньше мусора. Чем беднее регион и чем хуже в нем экономическая ситуация, тем меньше мусора оставляют граждане. Самые богатые тоже снижают объемы отходов, но уже по другим причинам


Владимирская область оказалась в числе регионов с серьезным сокращением объемов мусора, который сгенерировали граждане в результате своей жизнедеятельности. В целом по стране, по подсчетам аудиторско-консалтинговой сети
FinExpertiza, россияне за 2020 год произвели на 2,5% меньше мусора.


Сокращение мусорных объемов происходило неравномерно по всей стране: в 45 регионах генерация мусорных отходов сократилась, а в 40 регионах, напротив, объемы отходов выросли.


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


Но это не прямая зависимость, на объемы накопления мусора влияют и экологическое сознание граждан, и наличие инфраструктуры для раздельного сбора мусора и его вторичной переработки, и мода на разумное потребление. Так что богатые крупные города с большой долей продвинутого населения все-таки не попадают в число лидеров роста по накоплению бытовых отходов.


Во Владимирской области масса накопленных отходов за год сократилась на 18%. В среднем один владимирец за 2020 год выбросил 343 килограмма мусора, а в 2019 году выбрасывал больше — 417 килограммов.


Из ближайших географических соседей самое большое сокращение объемов выброшенного гражданами мусора произошло в Ивановской области — минус 43%. Но при этом на каждого ивановца в среднем в год приходится по 350 килограммов сгенерированных им отходов.


Другие соседние регионы сократили объемы создаваемого мусора не так сильно:


Рязанская область — минус 5,%, на одного жителя приходится 608 килограммов мусора в год; Московская область — минус 4,9%, на одного жителя приходится 744 килограмма в год.


А у двух соседей мусорная масса за год даже выросла:


Нижегородская область — плюс 10,7%, на одного жителя приходится 351 килограмм в год; Ярославская область — плюс 19,6%, на одного жителя приходится 441 килограмм в год.


«Количество мусора зависит от благосостояния людей и уровня потребления. Поэтому крайне важно, чтобы рост доходов населения не сопровождался линейным увеличением и общей массы отходов, ведь переработать весь объем ТКО не удается даже странам с развитой мусорной отраслью», – отмечает президент FinExpertiza Global Елена Трубникова.



Самые яркие события дня — в
инстаграме Зебра ТВ.

Стало известно, где на Северном Кавказе самые «мусорящие» горожане :: Кавказ :: РБК

Фото: РИА Новости

Две республики СКФО вошли в число регионов РФ с максимальным и минимальным сокращением генерации городских ТКО в 2020 году. Об этом сообщает аналитическая служба международной аудиторско-консалтинговой сети FinExpertiza на основании данных Росстата.

По данным FinExpertiza, за 2020 год жители российских городов произвели 49,6 млн тонн твердых коммунальных отходов. Это на 1,3 млн тонн, или на 2,5% меньше, чем годом ранее.

В 2020 году городского мусора стало меньше в 45 из 85 регионов РФ. Лидерами по сокращению отходов в городах стали Ненецкий автономный округ (-76,5% по сравнению с 2019 годом), Марий Эл (-54,6%), Ивановская область (-43,5%), Брянская область (-39,1%), Иркутская область (-32,3%), Северная Осетия (-32%), Чувашия (-30%), Свердловская область (-25,8%), Астраханская область (-25,2%), а также Севастополь (-24%).

В свою очередь, в 40 регионах мусора в городской черте, наоборот, стало больше. Особенно увеличилась генерация ТКО в Ингушетии (рост в 3,7 раза год к году), Республике Алтай (+64,8%), Воронежской области (+45,7%), Оренбургской области (+37,5%), Удмуртии (+34,3%), Крыму (+29,2%), Бурятии (+28,9%), Омской области (+27,1%), Сахалинской области (+20,2%), а также Томской области (+19,8%).

Из остальных регионов СКФО: в КБР (рост на 18,5%), в Чечне (+3,4%), в КЧР (снижение на 8,6%), в Дагестане (-3,2%), на Ставрополье (-2%).

Росстат: в сентябре от ковида умерли меньше, чем в июле и августе

Автор фото, TASS

За прошедший сентябрь в России скончались 44,2 тысячи человек с коронавирусом, для 39,6 тысяч из них Covid-19 стал основной причиной смерти, сообщил в пятницу Росстат. Его данные поступили на фоне ежедневных сообщений оперативного штаба по борьбе с коронавирусом о резком скачке смертности в конце сентября и в октябре.

В июле главное статистическое ведомство России сообщало о 50 421 смерти зараженных Covid-19 — на тот момент это был самый высокий показатель месячной смертности, почти вдвое больше, чем месяцем ранее, когда скончались 27 443 человека с коронавирусом. А согласно опубликованным Росстатом данных о смертности в августе, за этот месяц умерли более 49 тысяч заразившихся коронавирусом.

График не загружен. Попробуйте другой браузер

Хотя из данных Росстата следует, что смертность от ковида с июля по сентябрь шла на спад, по сведениям оперативного штаба, во второй половине сентября в России вновь было зафиксировано максимальное число летальных исходов за время пандемии. При этом оперштаб в своих ежедневных отчетах учитывает меньше летальных исходов, чем Росстат, который собирает больше данных: цифры штаба о смертности обычно в два — два с половиной раза ниже, чем у Росстата.

По информации штаба, с начала июля в России умирали более 700 пациентов с Covid-19 в сутки, в августе же показатели стали выше 800 смертей. В сентябре они также оставались на уровне около 800 — со скачком в конце месяца.

А 6 октября суточная смертность от коронавируса впервые превысила 900 случаев и вскоре перешла тысячный рубеж. В минувшую среду по стране зафиксировали 1 123 смерти.

График ковидной смертности, составленный университетом Джона Хопкинса, тоже показывает, что темпы роста числа летальных исходов в России с июля не замедлялись.

Данные Росстата от 29 октября говорят, что в сентябре от заболеваний, связанных с коронавирусом, умерло в семь раз больше людей, чем за тот же месяц годом ранее (5 438).

Если график не загрузился, попробуйте использовать другой браузер

Всего в России в сентябре умерло 201,9 тысячи человек — на 18% больше, чем в сентябре 2020 года.

Примерно такой же показатель избыточной смертности по сравнению с прошлым годом показывает и общая статистика Росстата — за девять месяцев 2021 года в России скончалось 1,73 млн человек, что на 18,5% больше, чем за тот же период годом ранее.

Ожидаемая продолжительность жизни мужчин Камчатки меньше федерального пенсионного возраста: ИА «Кам 24»

Ожидаемая продолжительность жизни камчатцев – 63 года для мужчин и 75 лет для женщин. Пенсионный возраст с 2028 года – 65 и 60 лет соответственно, передает ИА «Кам 24» со ссылкой на Росстат.

Средняя ожидаемая продолжительность жизни дальневосточников при рождении в 2020 году составила 69 лет. Это на 2 года меньше, чем в среднем по России, сообщают аналитики ФАНУ «Востокгосплан».

Самый высокий на Дальнем Востоке уровень ожидаемой продолжительности жизни как мужчин, так и женщин, приходится на Якутию и равен общероссийскому показателю – 71 год. Средняя ожидаемая продолжительность жизни камчатцев, по мнению Росстата, составляет 69 лет: 63 года для мужчин и 75 лет для женщин.

По данным экспертов, на Дальнем Востоке в 2020 году возраст дожития граждан до пенсии сократился, в том числе из-за последствий пандемии. В результате пенсионной реформы среди женского населения средний возраст дожития до пенсии составляет 14 лет при выходе на пенсию в 60 лет в 2028 году, и 10 лет, при  выходе на пенсию в 63 года в 2034 году. В расчетах учитывалась средняя по Дальнему Востоку продолжительность жизни женщин, 74 года.

«У мужского же населения при ожидаемом повышении возраста выхода на пенсию на 5 лет к 2028 году, при условии сохранения текущей величины продолжительности жизни, возникает разрыв, связанный с недожитием до пенсии», – сообщает Восточный центр государственного планирования.

Эксперты пришли к выводу, что величина дожития после выхода на пенсию на Дальнем Востоке ниже, чем в среднем по России.

«Таким образом, реализуемая пенсионная реформа не учитывает существующие территориальные диспропорции по продолжительности жизни населения в Дальневосточном федеральном округе. В этой связи актуальным вопросом для Дальнего Востока является рассмотрение возможности создания преференций в реализуемой пенсионной реформе по выходу на пенсию», – пишет Восточный центр государственного планирования.

Украина закачала в хранилища газа на треть меньше, чем год назад

https://ria.ru/20211025/ukraina-1756114638.html

Украина закачала в хранилища газа на треть меньше, чем год назад

Украина закачала в хранилища газа на треть меньше, чем год назад — РИА Новости, 25.10.2021

Украина закачала в хранилища газа на треть меньше, чем год назад

Запасы природного газа в украинских подземных хранилищах (ПХГ) на 24 октября составляют около 18,5 миллиардов кубометров, что более чем на треть меньше… РИА Новости, 25.10.2021

2021-10-25T12:53

2021-10-25T12:53

2021-10-25T12:53

в мире

украина

укртрансгаз

/html/head/meta[@name=’og:title’]/@content

/html/head/meta[@name=’og:description’]/@content

https://cdnn21.img.ria.ru/images/07e5/0a/08/1753624893_0:0:3640:2048_1920x0_80_0_0_4605d9704659e35fb4fdd57fb8a9562c.jpg

КИЕВ, 25 окт — РИА Новости. Запасы природного газа в украинских подземных хранилищах (ПХГ) на 24 октября составляют около 18,5 миллиардов кубометров, что более чем на треть меньше прошлогодних показателей, свидетельствуют данные на сайте оператора газохранилищ Украины «Укртрансгаза».При этом, согласно данным «Укртрансгаза», закачка в хранилища прекращена с 4 октября, и на данный момент осуществляется отбор газа из хранилищ в объеме примерно 24 миллионов кубометров в сутки.В начале октября глава » Укртрансгаза» Сергей Перелома заявлял, что Украина накопила в хранилищах 18,7 миллиарда кубометров газа, чего уже достаточно для прохождения отопительного сезона при отсутствии форс-мажоров. Премьер-министр Украины Денис Шмыгаль позже заверил, что страна обеспечена газом. Тем не менее в минувшую пятницу СНБО поручил правительству принять меры для бесперебойного обеспечения газом населения и бюджетных организаций.

https://ria.ru/20211023/timoshenko-1755901799.html

украина

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

2021

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

Новости

ru-RU

https://ria.ru/docs/about/copyright.html

https://xn--c1acbl2abdlkab1og.xn--p1ai/

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

https://cdnn21.img.ria.ru/images/07e5/0a/08/1753624893_0:0:2732:2048_1920x0_80_0_0_54c5c00169b8803986391cd2e993c713.jpg

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

в мире, украина, укртрансгаз

Украина закачала в хранилища газа на треть меньше, чем год назад

1/2 меньше 4/5? (Выясните, меньше ли 1/2, чем 4/5)

Хотите вычислить, меньше ли 1/2 чем 4/5? Один из наиболее распространенных расчетов в математике — это сравнение дробей. В этом действительно простом руководстве мы научим вас сравнивать и определять, меньше ли 1/2, чем 4/5, и шаг за шагом проведем вас через процесс вычисления.

Хотите быстро выучить или показать учащимся, как сравнивать 1/2 и 4/5? Воспроизведите это очень быстрое и веселое видео прямо сейчас!

Небольшое напоминание о дробях перед тем, как мы начнем: число в верхней части дроби называется числителем, а число в нижней части строки дроби — знаменателем.

Есть два метода расчета, если 1/2 меньше 4/5, и какой из них вы используете, будет зависеть от проблемы, которую вы пытаетесь решить:

Начнем с первого метода: преобразование дробей в тот же знаменатель . Сначала мы расположим 1/2 и 4/5 рядом, чтобы их было легче увидеть:

Наши знаменатели — 2 и 5. Нам нужно найти наименьший общий знаменатель двух чисел. Это наименьшее число, которое можно разделить как на 2, так и на 5.В этом случае наименьший общий знаменатель равен 10.

Если мы умножим первый знаменатель (2) на 5, мы получим 10. Если мы умножим второй знаменатель (5) на 2, мы также получим 10. Нам также нужно умножьте числители над линией на те же значения, чтобы значения дробей были правильными:

Теперь, когда эти дроби были преобразованы в один и тот же знаменатель, мы можем ясно видеть, глядя на числители, что 5 меньше 8, что также означает, что 1/2 меньше 4/5 .

Вы также можете сравнить эти дроби, предварительно преобразовав их в десятичный формат. Это намного быстрее, чем вычисление наименьшего общего знаменателя. Все, что мы делаем здесь, это делим числитель на знаменатель для каждой дроби:

Теперь, когда эти дроби преобразованы в десятичный формат, мы можем сравнить числа, чтобы получить наш ответ. 0,5 меньше 0,8, что также означает, что 1/2 меньше 4/5 .

Надеюсь, это руководство помогло вам понять, как сравнивать дроби, и вы сможете использовать свои новые навыки, чтобы сравнивать, меньше ли одна дробь другой или нет!

Если вы нашли этот контент полезным в своем исследовании, пожалуйста, сделайте нам большое одолжение и используйте приведенный ниже инструмент, чтобы убедиться, что вы правильно ссылаетесь на нас, где бы вы его ни использовали.Мы очень ценим вашу поддержку!

Почему COVID-19 менее опасен для детей? Обзор предложенных механизмов, лежащих в основе возрастных различий в тяжести инфекций SARS-CoV-2

Введение

Новый SARS-CoV-2, вызывающий заболевание под названием COVID-19, быстро распространился по всему миру. Поразительным и последовательным наблюдением стала разница в степени тяжести COVID-19 в разном возрасте: тяжесть, необходимость госпитализации и смертность резко возрастают с возрастом, в то время как тяжелые заболевания и смерть относительно редки у детей и молодых людей.1–3 Большинство детей, инфицированных SARS-CoV-2, не имеют симптомов или имеют легкие симптомы, чаще всего лихорадку, кашель, фарингит, желудочно-кишечные симптомы и изменения обоняния или вкуса.4 5

Вопрос о том, реже ли дети заражаются SARS-CoV-2, продолжается. Крупные эпидемиологические исследования показывают, что дети составляют от 1 до 2% всех случаев SARS-CoV-2.6–8 Однако эти цифры в значительной степени зависят от критериев тестирования, и во многих отчетах тестирование проводилось только у лиц, у которых были симптомы или которые требовались. госпитализация, что реже бывает у детей.Некоторые исследования показывают, что дети с такой же вероятностью, как и взрослые, могут заразиться SARS-CoV-2.9. Однако более поздние исследования показывают, что дети с меньшей вероятностью заразятся после контакта с человеком, инфицированным SARS-CoV-210–14. Было высказано предположение, что дети и подростки имеют одинаковую вирусную нагрузку15–16 и поэтому могут передавать SARS-CoV-2 с такой же вероятностью, как и взрослые.17–18 Кроме того, вирусная нагрузка может быть одинаковой у бессимптомных и симптоматических лиц.19–21. Что обнадеживает, передача в школах от детей другим детям или взрослым была редкостью.22–24

Наблюдение за тем, что дети реже заражаются SARS-CoV-2 и что у них менее серьезные симптомы, аналогично наблюдению за SARS-CoV-1 и ближневосточным респираторным синдромом (MERS) -CoV.25–27. этот паттерн разительно отличается от такового при заражении большинством других респираторных вирусов (например, респираторно-синцитиальным вирусом (RSV), метапневмовирусом, парагриппом или вирусами гриппа), распространенность и тяжесть которых выше у детей28.

Остается неясным, связана ли возрастная разница в клинических характеристиках COVID-19 с факторами риска тяжелой формы COVID-19, которые увеличиваются с возрастом, или с факторами, защищающими более молодые возрастные группы.Здесь мы критически рассматриваем предложенные гипотезы о возрастной разнице в тяжести COVID-19 (таблица 1).

Таблица 1

Предлагаемые гипотезы возрастной разницы в тяжести COVID-19

Факторы, приводящие к повышенному риску у взрослых

Различия в эндотелии и функции свертывания

SARS-CoV-2 может инфицировать эндотелиальные клетки и вызывать васкулит.29 30 Активация путей коагуляции и образование микротромбов в результате повреждения эндотелия, а также ангиогенез играют важную роль в патогенезе COVID-19 и могут приводить к тромботическим осложнениям, таким как сердечные приступы и инсульты.29 31–34 Это также может объяснить, почему пациенты с состояниями, влияющими на эндотелий, такими как диабет и гипертония, подвергаются большему риску тяжелой формы COVID-19. 35–37

Эндотелий у детей менее «поврежден» по сравнению со взрослыми, и система свертывания также отличается, что делает детей менее склонными к аномальному свертыванию.38 Следует отметить возрастной профиль тяжелого COVID-19 (и повышенный риск у мужчин) отражает тромботические заболевания, такие как тромбоз глубоких вен.

Сообщения о детях с более серьезной болезнью Кавасаки / токсическим шоковым заболеванием («Воспалительный мультисистемный синдром у детей, временно связанный с SARS-CoV-2 [PIMS-TS]» в Европе; также известный как мультисистемный воспалительный синдром у детей [ MIS-C] в США), возможно, также поддерживает идею о том, что функция сосудов играет важную роль в патогенезе COVID-19.39–47 Однако патогенез PIMS-TS, который обычно проявляется через 4–6 недель после заражения, отличается от острой COVID-19, поскольку это, вероятно, аутоиммунный феномен.48 Кроме того, гипервоспаление, лежащее в основе PIMS-TS, является отличается от наблюдаемого у взрослых с тяжелой формой COVID-19, который включает более высокие уровни IL-7 и IL-8 и более низкие уровни эффекторных CD4 + Т-лимфоцитов.48

Еще одно любопытное наблюдение заключается в том, что обмороженные кожные поражения (обычно на нижних конечностях), связанные с COVID-19, чаще описываются у детей и молодых людей.49–53 Патология, лежащая в основе этих поражений, была идентифицирована как эндотелиальная вирусная инвазия, приводящая к васкулиту или тромботической васкулопатии.

Рецепторы ангиотензинпревращающего фермента 2 и трансмембранная сериновая протеаза 2

Ангиотензинпревращающий фермент 2 (ACE2) является основным рецептором для проникновения SARS-CoV-2 в клетки человека.54 Этот рецептор присутствует на многих клетках, включая эпителиальные клетки носоглотка, легкие, сердце, почки, кишечник, печень, яички, плацента, центральная нервная система и кровеносные сосуды, а также макрофаги.55 56 Экспрессия ACE2 в эпителии носа и легких увеличивается в детстве и далее в зрелом возрасте.57-59 Кроме того, постулируется, что у детей есть рецепторы ACE2 с более низким сродством к SARS-CoV-2 и различным распределением по телу. сайтов, что затрудняет проникновение SARS-CoV-2 в клетки.55 Однако, хотя количество и сродство рецепторов ACE2 к эпителиальным клеткам увеличивается с возрастом и зависит от других факторов, таких как курение, диета, сахарный диабет, лекарства , пол и генетика, 37 55–57 60 61 не было показано, что это приводит к различиям в проявлениях COVID-19.Кроме того, количество рецепторов ACE2 снижается у пожилых людей, возрастной группы, наиболее восприимчивой к COVID-19. Напротив, у пациентов, которые принимают ингибиторы АПФ или блокаторы рецепторов ангиотензина по поводу артериальной гипертензии, ACE2 чрезмерно экспрессируется, и постулируется, что это делает этих людей более восприимчивыми к тяжелой форме COVID-19.62 63 Однако это спорно, частично объяснимо сложностью регуляции системы ACE2-ангиотензин, которая важна для регуляции иммунного ответа, особенно в легких, где она играет роль в защите от острого респираторного дистресс-синдрома (ARDS).В исследованиях на животных ACE2 защищает от SARS-CoV-2 и связанного с гриппом повреждения легких.64 65 После того, как SARS-CoV-2 получает доступ к клеткам через рецептор ACE2, экспрессия ACE2 снижается, что не позволяет ему оказывать противовоспалительное действие. свойств и от преобразования ангиотензина II в ангиотензин (1–7). Последующий избыток ангиотензина II может быть частично ответственен за повреждение органа при COVID-19,66, поскольку уровни ангиотензина II в сыворотке значительно повышены у пациентов, инфицированных SARS-CoV-2, и существует положительная корреляция с вирусной нагрузкой и повреждением легких. .67 Это согласуется с выводом о том, что у пациентов с сахарным диабетом, у которых экспрессия ACE2 снижена (вероятно, из-за гликозилирования), COVID-19 связан с тяжелым повреждением легких и ОРДС35.

Хотя варианты в гене, кодирующем ACE2, связаны с риском тяжелого COVID-19,68, все еще неясно, существует ли связь между уровнем циркулирующего ACE2 и тяжестью COVID-19. Тем не менее, возможно, что более высокие уровни циркулирующего АПФ в крови могут нейтрализовать вирус и защитить от повреждения легких за счет инактивации циркулирующего ангиотензина II.У мышей лечение человеческим ACE2 смягчает повреждение легких во время гриппа.69 Более того, уровни ACE2 в сыворотке отрицательно коррелируют с индексом массы тела и уровнями эстрогена, 70 что может способствовать ассоциации между ожирением и мужским полом с тяжелой формой COVID-19.

Помимо рецептора ACE2, проникновение SARS-CoV-2 в клетки включает трансмембранную сериновую протеазу 2 (TMPRSS2), которая расщепляет вирусный спайковый белок. Сообщалось, что, как и ACE2, TMPRSS2 увеличивается с возрастом на эпителиальных клетках носа и легких.58 59 71 Однако два недавних исследования не подтвердили эти выводы.72 73

Ранее существовавший иммунитет от антител к коронавирусу и Т-клеток

Обычно циркулирующие коронавирусы человека (HCoV) -229E, HCoV-HKU1, HCoV-NL63 и HCoV-OC43 являются причиной примерно 6–8% острых инфекций дыхательных путей. 1 У большинства людей антитела к HCoV вырабатываются в детстве.74 75 Однако, несмотря на сероконверсию в раннем возрасте, повторное инфицирование HCoV в более позднем возрасте является обычным явлением76, 77 и уровни нейтрализующих и ненейтрализующих перекрестно-реактивных антител, а также перекрестного заражения реактивные Т-клетки увеличиваются с возрастом.78–80

Ранее существующие ненейтрализующие антитела могут связываться с вирионами, которые затем могут легче проникать в макрофаги и гранулоцитарные клетки, механизм, называемый зависимым от антител усилением (ADE). Такие вирионы, покрытые антителами, также могут легче реплицироваться, что приводит к более высокой вирусной нагрузке.81 У детей с COVID-19 уровень нейтрализующих антител ниже, и у них меньше АДЭ, чем у взрослых. 78 Более высокие уровни не нейтрализующих перекрестно-реактивных антител к HCoV могут частично объяснить повышенную восприимчивость к тяжелой форме COVID-19 у пожилых людей.79 ADE — это явление, которое также необходимо учитывать при разработке вакцин, поскольку после вакцинации против SARS-CoV и MERS-CoV на животных моделях 82–86 и при использовании выздоравливающих пациентов наблюдалось усиление заболевания после вирусной контрольной вакцинации. плазма как вариант лечения.87

Инфекция обычно циркулирующими коронавирусами приводит к длительному Т-клеточному иммунитету к белку шипа (S), белку нуклеокапсида (N) и неструктурным NSP7 и NSP13 из ORF1 .Однако роль перекрестно-реактивных Т-клеток в отношении SARS-CoV-2 остается неясной.88–90 Было высказано предположение, что уже существующие Т-клетки с низкой авидностью, которые часто обычно присутствуют в большем количестве у пожилых людей, отрицательно влияют на Т-клеточный ответ на SARS-CoV-2.80 Было показано, что у детей с COVID-19 менее устойчивый Т-клеточный ответ на спайковый белок. 78

Иммунное старение, воспаление и хроническая ЦМВ-инфекция

Старение связано с иммуносенесценцией, постепенным снижением врожденного иммунитета, примером которого является неэффективное распознавание патогенов, активация макрофагов, снижение активности нейтрофилов и цитотоксической активности естественных киллеров [NK], а также адаптивной иммунитет, связанный с атрофией тимуса, лимфопенией, уменьшением количества наивных Т-клеток и увеличением анергических лимфоцитов памяти, что приводит к истощению хелперных Т-клеток, цитотоксических Т-клеток и В-клеток.91–96 Иммунное старение, вероятно, способствует снижению клиренса SARS-CoV-2.

Второе возрастное изменение в иммунной системе — воспаление, хроническое провоспалительное состояние, которое развивается в пожилом возрасте и связано с воспалительными заболеваниями, такими как атеросклероз и диабет, которые связаны с тяжелой формой COVID-19. 97 98 Предрасположенность Цитокиновый шторм у пожилых людей можно объяснить увеличением количества и активности NOD-содержащего, LRR-содержащего и пиринового домена протеина 3 (NLRP3) инфламмасомы, который был связан с тяжелой формой COVID-19.99 100

Другим иммунологическим механизмом, который может способствовать возрастному градиенту тяжести COVID-19, является возрастное увеличение аутоантител к интерферону I типа (IFN) (особенно IFN-α и IFN-ω), которые связаны с тяжелыми формами заболевания. Пневмония, вызванная COVID-19.101 Тип IFN играет важную роль во врожденном противовирусном ответе.102

Хроническая цитомегаловирусная (ЦМВ) инфекция, которая увеличивается с возрастом, может быть значительным фактором воспаления и иммунного старения.103 Хронический ЦМВ вызывает пролиферацию клональных Т-клеток и снижение разнообразия наивных Т-клеток, а также приводит к расширенному статусу дифференцировки CMV-специфические CD8 Т-клетки, связанные либо с повышенной экспрессией, либо с подавлением поверхностных рецепторов, цитокинов и факторов транскрипции.103 104 Эти эффекты ЦМВ на Т-клетки могут привести к снижению способности иммунных ответов к новым вирусным инфекциям, таким как SARS-CoV-2. 105 ЦМВ также увеличивает опосредованные воспалением цитокины, такие как фактор некроза опухоли (TNF) -α и интерлейкин (IL ) -6,106 делает пожилых людей с клинически скрытой ЦМВ-инфекцией более восприимчивыми к цитокиновому шторму, связанному с тяжелой формой COVID-19.

Сопутствующие заболевания

У детей реже встречаются сопутствующие заболевания, связанные с тяжелой формой COVID-19 у взрослых, такие как ожирение, диабет, гипертония и хронические заболевания почек, легких и сердца.36 Несмотря на то, что не было выявлено определенных факторов риска у детей, дети с хроническими заболеваниями легких (включая астму), сердечно-сосудистыми заболеваниями и иммуносупрессией чаще нуждаются в госпитализации по сравнению с ранее здоровыми детьми7, 107–109. медицинские условия, которые проходят иммуносупрессивное лечение или лечение рака, гораздо меньше подвержены COVID-19, чем взрослые110–113.

Низкий уровень витамина D

Витамин D обладает противовоспалительными и антиоксидантными свойствами, 114 и дефицит витамина D связан с повышенным риском развития инфекций дыхательных путей.115 Механизмы, с помощью которых витамин D может защищать от респираторных вирусов, включают увеличение уничтожения вирусов, снижение синтеза провоспалительных цитокинов и защиту целостности плотных контактов, тем самым предотвращая проникновение иммунных клеток в легкие116.

Частичное совпадение факторов риска тяжелой формы COVID-19 и дефицита витамина D, включая ожирение 117, хроническое заболевание почек118 и чернокожее или азиатское происхождение, 119 предполагает, что добавки витамина D могут играть роль в профилактике или лечении COVID-19.114 Во многих странах витамин D обычно добавляется детям младше 1 года, а в некоторых странах даже до 3 лет. Кроме того, уровни витамина D ниже в старших возрастных группах, особенно у мужчин, у которых прием пищи происходит реже.120 В нескольких исследованиях сообщается об отрицательной корреляции между оценками среднего уровня витамина D в популяции и заболеваемостью и смертностью от COVID-19.121– 123 Одно исследование показало более низкие уровни витамина D у людей с SARS-CoV-2 по сравнению с SARS-CoV-2-отрицательными людьми, даже после стратификации на возраст старше 70 лет.124 Другое исследование выявило более низкие уровни витамина D у пациентов с COVID-19 по сравнению с контрольной группой того же пола, возраста и времени года.125 Кроме того, уровень витамина D отрицательно коррелировал с серьезностью рентгенологических результатов. Два других исследования также обнаружили корреляцию между низким уровнем витамина D и серьезностью и смертностью от COVID-19.126 127

Исследования in vitro показывают, что кальцитриол, активная форма витамина D, обладает противовирусной активностью в отношении SARS-CoV-2.128. Еще один важный результат исследования на крысах показывает, что витамин D облегчает вызванное липополисахаридом острое повреждение легких через ренин-ангиотензин. system (RAS), 129 которая важна в патогенезе COVID-19, в которой степень гиперактивации RAS связана с худшим прогнозом.Низкий уровень витамина D приводит к более высокой активности РАС и более высоким концентрациям ангиотензина II130.

Факторы, защищающие детей

Различия в врожденном и адаптивном иммунитете

Помимо прямого цитотоксического действия вируса, иммуноопосредованные механизмы играют решающую роль в патогенезе COVID-19.131 В иммунной системе детей имеются важные различия. и взрослые, которые могут способствовать различным проявлениям COVID-19.78 132

У детей более сильный врожденный иммунный ответ, который является первой линией защиты от SARS-CoV-2, с большим количеством NK-клеток.Другим важным фактором является «тренированный иммунитет», который включает эпигенетическое перепрограммирование клеток врожденного иммунитета (включая NK-клетки) после воздействия определенных стимулов, включая инфекции и вакцинации, что приводит к «памяти» 133. 134 Эти обученные клетки быстрее и сильнее реагируют на последующие возбудитель, обеспечивающий усиленную защиту. Однако эта гипотеза не объясняет, почему этот механизм не защищает детей от других респираторных вирусов28. Вероятно, что иммунные ответы, включая продукцию IFN, на поверхности слизистых оболочек также важны для защиты от SARS-CoV-2.135 На сегодняшний день нет исследований, сравнивающих продукцию IFN эпителиальными или дендритными клетками детей и взрослых, вызванными SARS-CoV-2.

Что касается адаптивного иммунитета, у детей также более высокая доля лимфоцитов и абсолютное количество Т- и В-клеток, 136 в то время как старение связано со снижением активности тимуса и уменьшением количества наивных Т-клеток.96 Взрослые, инфицированные SARS- CoV-2 обычно имеет пониженное количество лимфоцитов137, и, возможно, большее количество лимфоцитов, особенно большой репертуар наивных Т-клеток, который обеспечивает сильный опосредованный Т-клетками иммунный ответ, играет роль в защите детей от SARS-CoV-2.

Еще одно предлагаемое иммунологическое объяснение состоит в том, что дети менее способны к возникновению провоспалительного цитокинового шторма, который играет важную роль в патогенезе тяжелого COVID-19 и ответственен за полиорганную недостаточность у пациентов в критическом состоянии.32 136 138 139

Госпитализированные дети с COVID-19 имеют более высокие сывороточные уровни IL-17A и IFN-γ, но не TNF-α или IL-6.78 Однако эта теория противоречит тому, что при инфекции RSV или гриппа, напротив, у детей нет менее склонны, чем взрослые, к развитию цитокинового шторма, ведущего к ОРДС.138 140

Более частые рецидивирующие и сопутствующие инфекции

Дети, инфицированные SARS-CoV-2, часто имеют сочетанные инфекции с другими вирусами (включая обычно циркулирующие вирусы гепатита C) .141–143 Эти вирусы могут мешать репликации SARS-CoV-2.144 Частые рецидивирующие вирусные инфекции также могут вызывать повышенное состояние активации врожденной иммунной системы, включая эпигенетические изменения в тренированном иммунитете, что облегчает избавление от SARS-CoV-2.134.

Перекрестно-реактивные антитела к коронавирусу и Т-клетки

Хотя было высказано предположение, что дети могут быть защищены от SARS-CoV-2 в результате уже существующих перекрестно-реактивных антител от более частых и недавних инфекций HCoV, 145 показывают предварительные данные. что, хотя антитела к HCoV перекрестно реагируют со спайковым белком SARS-CoV-2 и SARS-CoV, эти антитела редко нейтрализуют, поскольку они не связываются с доменом связывания рецептора SARS-CoV-2.146–149 В соответствии с этим, не было обнаружено различий в уровнях антител против HCoV между детьми, инфицированными SARS-CoV-2, и детьми, которые не были инфицированы150. Кроме того, уровни нейтрализующих и ненейтрализующих антител выше у взрослых, особенно пожилых людей по сравнению с детьми.78 79 То же самое верно и для Т-клеток, перекрестно реагирующих с SARS-CoV-2, которые также присутствуют в большем количестве у пожилых людей и могут быть пагубными80. важен для защиты от SARS-CoV-2.151 Однако на сегодняшний день ни одно исследование не сравнивало уровни IgA или авидность SARS-CoV-2 у детей и взрослых.

Микробиота

Еще одно возможное объяснение менее тяжелых проявлений COVID-19 у детей — это различия в микробиоте ротоглотки, носоглотки, легких и / или желудочно-кишечного тракта. Микробиота играет важную роль в регулировании иммунитета, воспаления и гомеостаза слизистых оболочек, а также в защите от патогенов. Таким образом, микробиота может влиять на восприимчивость к инфекции SARS-CoV-2 и тяжесть, или, учитывая, что ACE2 высоко экспрессируется в дыхательных и желудочно-кишечных трактах, 152 153 инфекция SARS-CoV-2 может повлиять на микробиоту и, следовательно, на воспаление.

Дети в большей степени колонизированы вирусами и бактериями, чем взрослые, особенно в носоглотке, где микробные взаимодействия и конкуренция могут ограничивать рост SARS-CoV-2.154 155 Связь между вирусной нагрузкой и тяжестью COVID-19 в некоторой степени подтверждает это гипотеза.156–158 В то время как одно небольшое исследование не обнаружило значительных различий в микробиоте носоглотки между пациентами, инфицированными SARS-CoV-2, и здоровыми людьми из контрольной группы, 159 другие исследования сообщили о значительных различиях в микробиоте ротоглотки, легких и желудочно-кишечного тракта между этими группами.160–164

Что касается микробиоты желудочно-кишечного тракта, у пациентов, инфицированных SARS-CoV-2, наблюдается снижение бактериального разнообразия с более низкой относительной численностью определенных типов бактерий, включая Faecalibacterium, и более высокой относительной численностью других, включая Bacteroides .160–162 В то время как Faecalibacterium , как известно, обладает противовоспалительными свойствами, 165 Bacteroides связаны со снижением экспрессии ACE2 в желудочно-кишечном тракте.166 Микробиота желудочно-кишечного тракта различается с возрастом: у детей обычно больше Bifidobacterium . 167 168 Различия в микробиоте желудочно-кишечного тракта также наблюдались между пациентами, которые выделяют или не выделяют SARS-CoV-2 со стулом169. На результаты микробиоты может влиять множество различных факторов, включая возраст, госпитализацию, прием антибиотиков и диету.170 171 Таким образом, вклад различий в микробиоте, если таковой имеется, в различия в степени тяжести COVID-19 остается неясным и причина против эффекта будет сложно определить.

Более высокие уровни мелатонина

Мелатонин обладает противовоспалительными и антиоксидантными свойствами посредством нескольких различных механизмов.172 173 Например, этот гормон увеличивает пролиферацию и созревание NK-клеток, Т- и В-лимфоцитов, гранулоцитов и моноцитов в обоих костных мозгах. и другие ткани, 174 и увеличивает презентацию антигена макрофагами.175 Кроме того, мелатонин снижает сывороточные уровни IL-6, TNF-α и высокочувствительного C-реактивного белка, 176 и подавляет ядерный фактор каппа-B.177

Мелатонин защищает от ОРДС и геморрагического шока при вирусных инфекциях. 178 179 Мелатонин также ингибирует кальмодулин, который увеличивает экспрессию и удержание ACE2 на поверхности клетки. 180 181 Мелатонин также может блокировать CD147,182, который является еще одним клеточным рецептором SARS-CoV. -2 entry183 и участвует в регуляции хемотаксиса и воспаления легких.184 Кроме того, исследования in silico показывают, что мелатонин ингибирует основную протеазу SARS-CoV-2.185 Поэтому было высказано предположение, что мелатонин можно использовать в качестве профилактики или лечения COVID-19.186 187 Рандомизированное исследование по оценке эффективности мелатонина для профилактики инфекции SARS-CoV-2 у медицинских работников продолжается.

Летучие мыши, являющиеся основным резервуаром коронавирусов и страдающие минимальными симптомами или отсутствием симптомов, имеют более высокий уровень мелатонина по сравнению с людьми.189 У людей секреция мелатонина отрицательно коррелирует с возрастом, особенно высокие уровни у младенцев, 190 191 который может способствовать облегчению симптомов в этой возрастной группе.

Нецелевые эффекты вакцин

Многие живые вакцины обладают нецелевым (неспецифическим) иммуномодулирующим действием, выходящим за рамки защиты от целевого заболевания.192 Для вакцины БЦЖ и вакцин, содержащих коревь (MCV), это включает снижение общей смертности в условиях высокой смертности и защиту от вирусных инфекций. 193–195 Механизмы, лежащие в основе иммуномодулирующего действия вакцин, являются предметом постоянных исследований. Вакцина БЦЖ влияет на врожденный иммунитет и Т-клеточный иммунитет путем эпигенетического перепрограммирования иммунных клеток и изменения цитокиновых ответов.

Поскольку дети, как правило, получали вакцину БЦЖ и другие живые вакцины позже, чем взрослые, было высказано предположение, что это способствует возрастным различиям в степени тяжести COVID-19.199

Экологические исследования, выявляющие связи между политикой и частотой вакцинации БЦЖ в странах и серьезностью вспышки COVID-19, призваны предоставить доказательства в поддержку этого. 200–202 Однако связь — это не то же самое, что причинно-следственная связь, и из этого есть исключения наблюдение.203 204 Кроме того, многие статьи, в которых утверждается, что существует связь, не учитывают вероятные смешивающие факторы между странами, такие как разные процедуры диагностики и отчетности, разные кривые эпидемии и разный потенциал медицинских систем.203 205 Также маловероятно, что положительные эффекты вакцинации БЦЖ сохранятся в течение многих лет, поскольку они, вероятно, нивелируются воздействием промежуточных вакцин и других факторов, которые также модулируют иммунную систему. Поэтому неудивительно, что через десятилетия после вакцинации у лиц, вакцинированных БЦЖ, по сравнению с лицами, не принимавшими БЦЖ, не было обнаружено никаких различий в частоте инфицирования COVID-19.206 РКИ БЦЖ для снижения тяжести COVID-19 продолжаются207.

Было высказано предположение, что, как и БЦЖ, вакцинация против полиомиелита и оральная вакцинация вносят свой вклад в разницу в тяжести COVID-19.208 209 В меньшем количестве исследований изучались механизмы, лежащие в основе иммуномодулирующих эффектов MCV, но они показали связь между MCV и уменьшением циркулирующих лейкоцитов и лимфоцитов с уменьшением количества клеток CD4 и увеличением клеток CD8. 210 211 РКИ Планируется вакцинация против кори, паротита и краснухи для снижения тяжести COVID-19212.

Интенсивность воздействия SARS-CoV-2

Вирусная нагрузка влияет на тяжесть COVID-19156–158, предполагая, что более низкая интенсивность вирусного воздействия может быть еще одним фактором, ведущим к менее тяжелому заболеванию.213 Дети могут подвергаться менее интенсивному воздействию SARS-CoV-2 по сравнению со взрослыми, у которых обычно были рабочие места, покупки, путешествия и нозокомиальное воздействие6. 214–216

Поскольку дети обычно заражаются взрослыми, они заражаются SARS-CoV-2 второго или третьего поколения. Сообщалось, что для SARS-CoV и MERS-CoV последующие поколения вируса имели более низкую патогенность по сравнению с вирусом первого поколения. 217 218 Однако на сегодняшний день об этом не сообщалось для SARS-CoV-2. Напротив, дрейф антигена через мутацию под названием D614G в спайковом белке, как предполагается, приводит к более высокой вирусной нагрузке и передаче вируса без изменения патогенности.219 220 Неясно, было ли это результатом более высокой физической подготовки или случайности. В то время как вариант SARS-CoV-2 D614 был основным фактором пандемии в Китае, вариант G614 является основным штаммом, распространяющимся по Европе и США221.

Почему компиляция Magento 2 LESS такая медленная?

Это разочарование разработчиков внешнего интерфейса Magento 2 уже много лет. И меня удивило, что об этом так мало написано: компиляция кода LESS по умолчанию для Magento 2 выполняется медленно, легко занимает до 8 секунд.Но почему? Вот краткое изложение эксперимента, который я провел, чтобы выяснить, в чем настоящая проблема. Плюс некоторые выводы (и полурешения).

Краткое введение

Вместо непосредственного написания CSS препроцессоры CSS, такие как SASS и LESS, стали популярными с годами. Magento 2 внедрил LESS на ранней стадии. В настоящее время тема Magento / blank и тема Magento / luma поставляются с многочисленными файлами LESS, которые сводятся к двум основным файлам: styles-m.меньше и стили-л. меньше .

Эти 2 основных файла LESS либо скомпилированы с использованием библиотеки PHP ( oyejorge ), либо Grunt. Теоретически возможно скомпилировать LESS с помощью других инструментов, но тогда вам нужно будет самостоятельно решить проблему с операторами @magento_import (которые поддерживают наследование тем и статус модуля).

Проблема

Когда вы пытаетесь скомпилировать файлы LESS styles-m.less и styles-l.less , время компиляции занимает до 6 секунд.

Когда это является частью развертывания статического контента (которое снова является частью развертывания кода на действующем сайте), никого не волнует. Однако современный рабочий процесс фронтенд-разработчика включает в себя задачу Grunt смотреть , которая отслеживает изменения в файлах LESS. И когда эта задача подхватывает изменение, разработчик внешнего интерфейса будет ждать завершения этой задачи, прежде чем увидит эффект этого изменения на экране в браузере. Такие инструменты, как LiveReload, пригодятся.

Медленное время загрузки останавливает вас в потоке

Но проблема в времени ожидания.Когда фронтенд-разработчик находится в потоке , он должен занять максимум около 1 секунды, прежде чем LESS скомпилируется в CSS. Это примерно время, необходимое для обновления браузера или (если браузер обновляется автоматически) для перемещения вашего взгляда с редактора на экран браузера.

Для сравнения, я использовал LESS (и SASS) для пользовательских проектов, и обычно требуется около 400-600 мс для компиляции с Grunt и 300-500 мс с Gulp. Это то, что мы хотим видеть. Значит, что-то не так в настройке Magento.

Что кушает?

Обсуждая это с другими разработчиками, я часто слышал, что виноват Magento. Я тоже повторял то же самое. Но сказать, что Magento — это проблема, значит сказать, что компьютер не работает . Если вы не углубитесь в детали проблемы, вы не поможете ее решить.

Давайте пройдемся по этапам LESS-компиляции, чтобы увидеть, что происходит где:

Этап 1: Предварительная обработка препроцессора

Когда Grunt используется для LESS-компиляции, Grunt проверяет с помощью Magento, какие модули Magento включены, затем копирует все МЕНЬШЕ файлов на модуль Magento во временную папку var / view_preprocessed , тем самым разрешая оператор @magento_import и переводя его в обычные операторы @import .

Этап 2: Компиляция МЕНЬШЕГО

Все, что попадает в папку var / view_preprocessed , просто МЕНЬШЕ. Вы можете скомпилировать его любым LESS-компилятором. Magento использует либо библиотеку PHP, либо плагин Grunt.

Этап 3: Копирование в / pub

Наконец, CSS, который является результатом LESS-компиляции, копируется в / pub / static / frontend , и все готово.

Обзор этапов

Я потратил длинные выходные (около полугода назад), чтобы пройти этап 1, сосредоточившись на том, как Grunt собирал файлы LESS, а также на тестировании вызова Magento, чтобы узнать, какой Magento модули включены.Я начал этот эксперимент, думая, что Magento виноват в скорости. Но в моем случае вызов Magento занял всего 60-80 мс, а сбор файлов Grunt всего около 200 мс (с SSD-диском).

Это не Magento

Вывод этого первого эксперимента был несколько озадачивающим: это был не Magento — не его сложная архитектура PHP, не его база данных, не его огромная файловая структура. Это также был не Grunt, хотя многие жаловались на то, что Grunt намного медленнее, чем Gulp. Это был даже не процесс копирования файлов, связанный с сотнями файлов LESS.Этап 1 длился всего 200–300 мс (может быть, все еще медленный, но не до 8 секунд).

Это была компиляция LESS (этап 2).

Доказательство того, что виноват сам LESS

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

Убедитесь, что Grunt работает, а затем запустите grunt минус . Затем перейдите в папку var / view_preprocessed , а затем перейдите к папке pub / static / frontend / Magento / luma / en_US / .Здесь, в этой папке, я использовал обычную команду NPM lessc ( npm install -g less ) для компиляции двух основных файлов LESS. И я также использовал команду time , чтобы измерить, сколько времени это заняло:

  time lessc css / styles-m.less> / dev / null
время меньше css / styles-l.less> / dev / null
  

Компиляция файла styles-m.less заняла почти 6 секунд, а компиляция файла styles-l.less заняла более 2 секунд. Вместе время компиляции 8 секунд, без участия Grunt или Magento.

Разрешение @imports

В моем первом эксперименте я уже пришел к такому выводу. Но при взломе самого кода LESS я удалил правила @import , увидел улучшение производительности и сделал преждевременный вывод, что сами правила LESS @import могут нести ответственность за скорость. Я не писал об этом в блоге и теперь рад, что не делал этого: это был неправильный вывод.

Теперь я углубился в это: если бы были виноваты правила @import , скорость LESS-компиляции увеличилась бы, если бы сначала были разрешены все правила @import .Для этого я создал небольшой PHP-скрипт less_import_parser.php (gist.github.com/27a1406586b4e5bba0cfdb05ba2ada0a), который просто считывает все правила @import и заменяет их дампом соответствующего файла LESS.

Нет больше @import, один огромный LESS blob

Результатом этого PHP-скрипта является пара отдельных файлов LESS, каждый из которых соответствует исходному основному файлу LESS, без каких-либо правил @import . Я назвал эти файлы test-l.less и test-m.меньше . Затем я использовал тот же подход, что и раньше, для измерения времени компиляции:

  раз меньше c css / test-l.less> / dev / null
время меньше css / test-m.less> / dev / null
  

Результат: Нет реальной разницы во времени компиляции. Вывод: правила LESS @import (а также количество файлов LESS) не влияют на процесс компиляции.

Исправление: количество файлов LESS не имеет значения

За последние 2 года я говорил людям, что компиляция LESS — это то, что теоретически можно улучшить, уменьшив количество задействованных файлов LESS.(В этом есть доля правды, потому что чем меньше у вас МЕНЬШЕ кода, тем быстрее он становится.)

После первого эксперимента я также говорил людям, что существует магический предел в 80 МЕНЬШЕ файлов, выше которого МЕНЬШЕЕ внезапно становится обузой. Этот предел чрезвычайно странный, но реальный: я испытал в пользовательском проекте лучшую производительность, уменьшив 120 файлов LESS до 60 файлов LESS без уменьшения самого кода LESS.

Однако это не похоже на проблему с Magento.

Сужаем реальную проблему

Итак, если это не Magento, не Grunt, не LESS @import , остаются только 2 области, которые могут быть причиной проблемы: количество задействованного кода LESS. Или конкретный синтаксис LESS, используемый Magento. Что ж, чтобы быстро рассказать о первой возможности: я использую Bootstrap 3 уже много лет, и количество кода LESS, которое я использую там, больше, чем с Magento, а время компиляции составляет около 800 мс. Это не количество МЕНЬШЕ кода.

Это синтаксис. Я не эксперт МЕНЬШЕ. Но каким-то образом то, как тема Magento / blank (и Luma) использует LESS переменных в миксинах и вычислениях, заставляет LESS-компиляцию занимать больше времени.

Чтобы решить эту проблему, вам нужно будет сильно переписать код LESS. Или бросить это. В любом случае получайте удовольствие. Выводы еще ближе к концу статьи.

Переход с LESS на SASS?

Я простой голландский мальчик. Поэтому я решил, что, возможно, LESS было достаточно эффективным по своей логике.Так что, возможно, SASS справился лучше. Я установил Ruby gem less2sass , чтобы преобразовать весь код LESS в SASS. Это не удалось. Я также использовал некоторые веб-конвертеры, но полученные файлы SCSS никогда не компилировались в CSS должным образом.

Я не нашел способа легко преобразовать LESS в SASS. И я не знаю, решило бы ли это проблему так или иначе.

Переключение с Grunt на Gulp

Хотя может оказаться, что lessc — самый простой компилятор для тестирования, он не самый производительный.Gulp использует потоки Node для компиляции ресурсов и, таким образом, более эффективно обрабатывает файлы. Просто используя Gulp, вы можете сэкономить несколько секунд. Используя subodha / magento-2-gulp, вы можете комбинировать Gulp и LESS и компилировать код быстрее, чем с смесью Magento Grunt / LESS:

В моем случае выполнение grunt less: luma заняло около 4 секунд. Если на глотков меньше --luma , это станет 2,5 секунды. Все еще медленно, но лучше.

RAM-диски или tmpfs не действуют

Я попытался скопировать все файлы LESS на tmpfs и на RAM-диск, эффективно убедившись, что ноль обращений к диску там, где это необходимо.В современной файловой системе Linux (которая у меня есть) память в любом случае используется эффективно, но я хотел убедиться. Нулевое воздействие. Добавление к этому ОЗУ ничего не решает.

(Я думал, может быть, добавить больше процессоров в процесс компиляции, но не нашел многопоточного компилятора.)

Это действительно работает: Отключить модули

Уменьшение количества задействованного кода LESS влияет на производительность : Чем меньше МЕНЬШЕ кода нужно компилировать, тем меньше времени он занимает. Так что об уменьшении количества модулей определенно стоит подумать.

Я написал сообщение в блоге об этом ранее (Отключение раздражающих сторонних модулей), но блоги Integer.net предлагают гораздо более крутое решение composer : удаление неиспользуемых основных модулей из Magento 2 — правильный путь

Уменьшение количество модулей Magento в вашей настройке в любом случае хорошее. Но это не значит, что что-то не так с кодом LESS Magento.

Выводы

Виновата сложность кода LESS, написанного самим Magento.Я сам запускал более крупные проекты LESS, где больше кода компилируется примерно за 10% времени, которое требуется Magento. На мой взгляд, основная причина, по которой мой код LESS работает быстрее, заключается в том, что он включает только простые переменные, миксины, ведущие себя как чистые функции, и все.

Ожидание компиляции кода LESS в Magento 2 занимает много времени, что является проблемой. Давайте теперь посмотрим на некоторые возможные решения.

Решение 1. Разберитесь с этим

Успокойтесь. Для компиляции кода и просмотра изменений в вашем браузере требуется всего 8 секунд.Это не значит, что вам нужно смотреть в окно в эти 8 секунд. Найдите способ сделать это время продуктивным. В эти секунды я обычно думаю о своей жизни в качестве разработчика Magento.

Решение 2. Замените LESS чем-нибудь другим

Неприятный вывод заключается в том, что виновата сложность кода LESS. Избавиться от этого. Перепишите код LESS во что-то, что вы понимаете. Или напишите новый код LESS с нуля. И пока вы это делаете, возможно, переключитесь с LESS на SASS. Или используйте переменные CSS или Flexbox.Когда вы освободитесь от ограничений Magento LESS, вы сможете создавать все, что захотите. Например, популярным подходом является Snowdogs Frontools.

Решение 3. Добавьте свой собственный CSS поверх Magento CSS.

Если первые два решения слишком разочаровывают, есть и менее идеальное решение: забудьте о расширении Magento LESS. Вместо этого используйте XML-макет, чтобы добавить на страницу свой собственный theme.css и расширить его. И вы можете использовать LESS или SASS или что-то еще для создания этого файла.С точки зрения производительности это не лучшее решение, но оно избавит от разочарования без особых усилий.

Решение 4. Используйте subodha / magento-2-gulp

Заменяя Grunt на Gulp, вы получаете преимущества потоков Node, которые более эффективно обрабатывают содержимое файлов. С настройкой subodha / magento-2-gulp вы можете сократить время компиляции с 4-6 до примерно 2-3 секунд, что замечательно. Спасибо Martijn Cuijten за указание на это.

Не стесняйтесь комментировать

Надеюсь, вам понравилась эта статья.Мне было интересно пройти бенчмаркинг и посмотреть, что где жрет. К сожалению, он не предлагает надежного решения, чтобы все исправить. Но, надеюсь, это поможет вам выбрать лучшее решение для вас.

Не стесняйтесь оставлять комментарии ниже. Я очень хочу услышать отзывы о сложности структурирования кода LESS в Magento. Аналогичным образом, если у вас есть альтернативные решения, сообщите об этом всем.

Размещено 7 августа 2018 г.

Пожалуйста, включите JavaScript, чтобы просматривать комментарии от Disqus.

2x-1 / 3x-2

Я имею в виду, что x больше или равно, не меньше. извиняюсь.

Я получил:

x <2/3 OR x> = 1

Путь, который я получил, был не прямым, но, похоже, в моем безумии был метод, поскольку мое решение, похоже, работает. Я проверил свой ответ на некоторые ключевые и другие значения (x = 2/3, x = 1, x = 3/4, x = 5/6, x = 10, x = -10), и все они оказались верными.

Прежде чем идти дальше, нам нужно исключить особый случай, когда знаменатель = 0.То есть мы решаем знаменатель = 0, чтобы найти недопустимые значения для x. 3x — 2 = 0 приводит к x = 2/3. Поэтому, когда x = 2/3, знаменатель равен 0, что не определено. Таким образом, 2/3 не могут быть частью какого-либо решения.

Хорошо, нестандартной части приходилось обрабатывать 2 возможных случая при умножении на 3x — 2, чтобы устранить неравенство дробей. Если для неравенства вы умножаете на отрицательное число, вам нужно изменить направление знака неравенства: если вы умножаете на положительное число, вы этого не сделаете.

Хорошо, 3x — 2 положительный или отрицательный? Мы не знаем. Так что мы должны попробовать и то, и другое.

Я разделил задачу на 2 отдельных неравенства: одно для 3x — 2> 0 и одно для 3x — 2 <0. В упрощенном виде это x> 2/3 и x <2/3 соответственно.

Решив для первого, я получил x> = 1. Решив для второго, я получил x <= 1.

Нанесение этих ответов на числовую строку показывает, что ВСЕ (действительные) числа являются решением (кроме 2/3, что мы исключили вначале).

Вроде нормально, но подождите. Рассмотрим первую ветвь, где x> 2/3. Полученный ответ: x> = 1. Итак, ЕСЛИ x> 2/3, тогда x> = 1 ????? Что, если x = 4/5? Тогда оно больше 2/3, но меньше 1. Противоречие? Подключив 3/4 для x, я получил недопустимое решение. Таким образом, x = 3/4 не является решением. Фактически, любое значение x больше 2/3, но меньше 1 не является решением.

Далее я рассмотрел вторую ветвь, где x <2/3. Полученный ответ: x <= 1.При взгляде на него проблемная область совпадала с областью первой ветви.

Следовательно, все числа являются решением, кроме 2/3 (что сделало бы знаменатель 0) и любых чисел больше 2/3 и меньше 1.

Следовательно:

x <2/3 OR x> = 1

Как использовать SASS вместо LESS в Magento 2

Интернет-магазин на Magento 2 в готовой версии по умолчанию поддерживает только LESS — препроцессор CSS — язык динамических стилей, который разработал Алексис Селье.Он был создан под влиянием языка SASS и, в свою очередь, повлиял на новый синтаксис SCSS, который также использует синтаксис, являющийся расширением и не поддерживающий SASS.

Какова цель использования SASS в Magento 2?

SASS более мощный, чем LESS, и, похоже, завоевывает большую долю рынка, чем LESS. Так почему же Magento 2 выбрал МЕНЬШЕ? Извините, но по скучной прагматической причине:

В то время, когда нам приходилось придерживаться этой технологии, в PHP было несколько стабильных препроцессоров LESS, но не было (стабильных) реализаций PHP для SASS.

Алан Кент (вице-президент по поиску eBay, технический руководитель M2)

Другими словами, это означает, что ввиду ограниченного времени на изучение или поиск стабильной реализации SASS на PHP было решено использовать LESS.

SASS довольно популярен среди интерфейсных разработчиков и не только, и если вы (как и я) привыкли его использовать, то ниже представлена ​​инструкция по интеграции препроцессора CSS в проект на Magento 2.

Less to Sass Community Project официально поддерживается Magento, а Theme Blank SASS — результат этого проекта — представляет собой пустую тему Magento 2 (готовую к выпуску), преобразованную в SASS.

Вместе с прилагаемым пакетом Fronttools вы получаете инструменты разработки и расширяемую пустую тему на основе SASS, так что у вас есть возможность разработать свою собственную тему.

Как установить тему SASS и Fronttools

  1. Run composer require snowdog / frontools
  2. Перейдите в папку (ваш проект Magento 2) cd vendor / snowdog / frontools
  3. Run yarn или npm install
  4. Вам необходимо решить, где вы хотите сохранить файлы конфигурации, в папке пакета fronttools или в другом месте dev / tools / frontools / config.Запустите установку gulp (в той же папке vendor / snowdog / frontools), чтобы автоматически скопировать файлы тестовой конфигурации в папку dev / tools / frontools / config, и будет создана символическая ссылка на основную папку, чтобы облегчить вам поиск для ваших файлов конфигурации
  5. Определение / описание вашей темы в файле настроек — themes.json.

themes.json структура

  • src — полный путь к теме
  • dest — полный путь к статическим файлам pub / static / [theme_area] / [theme_vendor] / [theme_name]
  • locale — массив доступных локалей
  • parent — имя родительской темы
  • stylesDir — (стили по умолчанию) путь к папке со стилями.По умолчанию Magento 2 использует web / css
  • disableSuffix — отключить добавление суффикса .min с помощью флага -prod.
  • postcss — (по умолчанию [“plugins.autoprefixer ()”]) массив используется для передачи / использования плагинов
  • modules — список модулей, которые вы хотите использовать для создания карты в своей теме
  • ignore — массив — шаблоны, список игнорирования

Пример themes.json

{
"blank": {
"src": "vendor / snowdog / theme-blank-sass",
"dest": "pub / static / frontend / Snowdog / blank",
"locale": [" en_US "],
" postcss ": [" плагины.autoprefixer () "],
" игнорировать ": [" .test "]
}
}

Компиляция SASS в CSS

Запустите команду внутри папки / tools / вашего проекта, если папка еще не была создана, то команду

настройка gulp в папке / vendor / snowdog / frontools /

стилей залпом

Полезные команды

gulp clean удалить статическое содержимое в папке / pub / static

gulp dev запустить браузерSync, babel, styles, смотреть задачи

Банкноты

Покупая модули для Magento, которые имеют шаблоны HTML и стили / разметку, вы потратите дополнительные инструменты — время на адаптацию стилей, потому что по умолчанию все модули, которые имеют элементы HTML и разметку для них, разрабатываются в рамках темы Luma, которая, в свою очередь, разработан на Less.Но если в вашем магазине используется оригинальная тема, вы постоянно следите за обновлениями на сайте, то даже если вы используете тему в Less, вы на 100% инвестируете в адаптацию стилей приобретенного модуля.

Менее 2% всех пожертвований в США направляются на благотворительность для женщин и девочек

CC BY-ND

Движение #MeToo набрало обороты в конце 2017 года и продолжило расти в следующем году, поскольку бесчисленное количество женщин делились своим опытом сексуальных домогательств, жестокого обращения и нападений.Но по последним данным, пожертвования женским и женским организациям составили всего 1,92% от всех благотворительных пожертвований в 2018 году.

Этот всплеск повышенного общественного внимания, согласно последнему изданию «Индекса женщин и девочек», мало что сделал с точки зрения того, сколько долларов было вложено в дела женщин и девочек. Доля донорских средств, поступающих в эти группы, в 2017 году составляла 1,8%, а в следующем году увеличилась.

Мы — трое исследователей, составляющих этот индекс.Чтобы измерить объем благотворительных пожертвований в США женским и женским организациям, мы проанализировали данные Налоговой службы по некоммерческим организациям.

Безусловно, благотворительная поддержка женских и женских организаций в 2018 году немного выросла, достигнув 8,2 миллиарда долларов. Это был самый высокий уровень, зарегистрированный с 2012 года, то есть по нашим данным.

Индекс измеряет пожертвования многим организациям: от Сьюзен Г. Комен, которая борется с раком груди, до женских колледжей, таких как Смит и Скриппс, и девочек-скаутов.

Любой желающий может бесплатно загрузить или выполнить поиск данных, посетив наш веб-сайт.

Некоторые виды женских и девичьих групп добились большего успеха, чем другие в 2018 году. Пожертвования групп, занимающихся проблемами окружающей среды, таких как «Голос женщин за Землю» и «Женщины в возобновляемой промышленности и устойчивой энергетике», выросли на 37,1%. Благотворительные организации, занимающиеся гражданскими правами и защитой интересов, в том числе Национальный женский правовой центр и Catalyst, выросли на 32,3%.

Хотя на эти категории приходится небольшая доля всех пожертвований женским и девичьим организациям, их значительный рост свидетельствует о том, что движение #MeToo и растущее осознание несправедливых последствий изменения климата усиливают поддержку связанных с этим причин.

В будущем мы хотели бы увидеть, что происходит с межсекторальной благотворительностью. Примеры того, что мы надеемся изучить, включают благотворительность для цветных женщин и девочек, женщин и девочек с ограниченными возможностями, а также женщин и девочек из ЛГБТК.

[ Более 110 000 читателей полагаются на информационный бюллетень The Conversation, чтобы понять мир. Зарегистрируйтесь сегодня.]

Magento 2. Меньше компиляции с Grunt

Внимание !!!
Вы НЕ должны изменять или компилировать какие-либо файлы.меньше файлов, если для вашего магазина Magento не включен режим РАЗРАБОТЧИКА.

Использование Grunt для компиляции ваших файлов less — самый надежный и эффективный способ устранения возможных ошибок Magento. Это позволяет сразу видеть изменения в CSS.

1. Во-первых, вам необходимо авторизоваться на сервере magento. Следующим шагом является установка node.js и npm на ваш сервер.

  • Windows: cinst nodejs.install (для Chocolatey), scoop install nodejs (для Scoop)
  • Arch Linux: pacman -S nodejs npm
  • Void Linux x- x: -Sy nodejs.
  • MacOS: brew install node

Здесь вы можете найти инструкции по установке node.js через диспетчер пакетов (Ubuntu, CentOS, Fedora, Red Hat, Windows).

2. Затем вам нужно переименовать файл gruntfile.js.sample в gruntfile.js (удалите .sample из имени файла).

Сделайте то же самое для файла package.json.sample . Этим действием вы активируете файлы.

У вас должно получиться 2 файла с переименованием:

3. Откройте файл dev / tools / grunt / configs / themes.js , чтобы отредактировать и добавить свою тему в конфигурацию Grunt, как в примере:

  • «theme106» — это номер темы Flash. Замените «106» номером своей темы.
  • «Zemez» — название поставщика темы, либо Zemez, либо TemplateMonster. Вы можете проверить название поставщика в папке app / design / frontend.
  • «en_US» — локаль, если магазин в США — en_US, если немецкий — de_DE, если русский — ru_RU и т. Д.

4. Вернитесь в командную строку, теперь вам нужно установить grunt-cli компонент глобально .

Подсказка: Используйте cd ../ для перемещения вверх на один каталог.