Хотелось бы объяснить старперам которые не хотят учить новый синтаксис откуда он взялся. Он такой не просто потому что им захотелось поменять и устарело, а потому что внутренняя структура у нового фильтра другая. В старом айпитейблс правила насколько я понимаю из каждого пакета перебираются все подряд для каждого чейна, пока какое-нибудь не сработает и не укажет что делать с пакетом дальше. Ясное дело что для такого используется массив правил - каждый чейн табличек это тупо массив правил. Новый фильтр работает иначе, правила компилируются в байткод, который потом компилится нативный код, который просто проверяет какие байты находятся по таким-то смещениям и на основе этого переходит на ту или иную часть своего кода выполняться дальше, ну тоесть так же как и if else конструкции в любом языке программирования. И это действительно прогресс, такой подход куда быстрее работает, система проверяет условия и на основе этого выбирает что дальше проверять, ей не нужно перебирать кучу правил ради того единственного. Не говоря уж о том, что байткод(а тем более jit скомпиленный в нативный код) будет куда быстрее чем тупая чекалка перебирающая массив правил. При этом всем всеравно что там думает куча старперов не понимающих откуда идет различие в синтаксисах, для вас сделали прослойку совместимости. Хотя код написанный через прослойку будет медленней, нежели вручную скорее всего. Вообще не хочешь учиться - вон из профессии.
|