CodeXL теперь заменил Конец Аналитика Кода Line'd AMD , и оба свободны, но не так усовершенствованы как VTune. Существует также Сонные , который очень прост, но делает задание во многих случаях.
В результатах нет ничего плохого. Ваш вектор поддержки
по сути,
[-3*sigma -2*sigma -1*sigma 0 1*sigma 2*sigma 3*sigma]
И если вы возведете в квадрат каждый элемент поддержки и умножите на -1, -поддержка. ^ 2
[-9*sigma^2 -4*sigma^2 -1*sigma^2 0 -1*sigma^2 -4*sigma^2 -9*sigma^2]
Итак, разделив его на 2 * сигма ^ 2
всегда будет приводить к одному и тому же вектору,
[-9/2 -4/2 -1/2 0 -1/2 -4/2 -9/2]
или
-4.5000 -2.0000 -0.5000 0 -0.5000 -2.0000 -4.5000
Итак, , поэтому вы всегда получаете один и тот же ответ.
Поэтому вам нужно проверить свой алгоритм на предмет создание одномерного гауссовского фильтра.
РЕДАКТИРОВАТЬ:
Ваш исходный код в порядке: кроме Я не понимаю, почему вы сделали поддержку
с помощью -3 * sigma: sigma:
Сураски являются ключевыми участниками PHP
И у них есть одна из самых полных структур для PHP.
Если задуматься; это все равно что сказать:
«Наш язык не такой производительный, как мог бы, поэтому мы создали структуру с кешированием, которая делает его быстрее»
Одним из основных преимуществ ZF является то, что вы можете взять любой из его компонентов и легко связать их со своей (или сторонней) структурой с минимальными изменениями.
Формы: Декораторный подход сложен, но пуленепробиваемый и бесценный для приложений с различными формами. Вам все равно, 10 или 25 предметов в вашей форме, стиль всегда один и тот же. Когда вы знаете, как им пользоваться, вы экономите много сил. Для пользователей с более простым умом и целями всегда есть декоратор viewScript;)
Auth / Acl: Никогда не было проблем с этим.
Zend_Auth::getInstance()->hasIdentity() //logged in
и
Zend_Auth::getInstance()->getIdentity()->role; //returns admin
Для Acl:
$acl->isAllowed($who, $where, $what);
$acl->isAllowed('roleAdmin', 'resourcePosts', 'create'); //returns true
Можно легко изменить для соответствия MVC:
$acl->isAllowed('roleAdmin', $module.ucfirst($controller), $action); //returns true
$acl->isAllowed('roleAdmin', 'adminPosts', 'create'); //returns true
ZF - хорошая отправная точка. Я использовал zend_tool для создания скелета MVC моего приложения среднего размера и много других компонентов (Zend_Cache, электронная почта, перевод, формы, сеанс).
И я согласен с тем, что компоновка формы сложна, если вы пытаетесь сделать это как говорит Зенд - с декораторами. Есть способы использовать только элементы Zend_Form с проверкой и в вашем собственном макете - без декораторов.
У меня был плохой опыт работы с Zend Cookies - я просто не мог установить cookie для всего моего домена. Старый добрый setcookie сработал правильно.
О Acl - опять же, примеры в документации Zend и Zend_Acl иногда не работают. Я использовал плагин контроллера и свое собственное «управление ресурсами на основе ролей» для управления разрешениями.
Я даже не пробовал Zend Data Gateway - вместо этого использовал Doctrine (я думаю, это потому, что мне нравится nHibernate :)) И подключение Doctrine было действительно легко.
Я думаю, что ZF хорош тем, что вы можете использовать его как хотите. Думаю, с некоторыми другими фреймворками будет сложнее.
Простота создания приложений среднего размера. До ZF вам приходилось создавать свою собственную «структуру» для приложений среднего размера. Теперь все намного проще.
Я не думаю, что разделение и простые элементы, которые можно использовать независимо, являются ключом к успеху. Это хорошая функция, но не для регулярного использования.
Поддержка и размер сообщества уместны в балансе с другими фреймворками.
С точки зрения скорости они НЕ лучше, чем другие рамки.
Я не выбрал Zend Framework, потому что в то время, когда я оценивал PHP-фреймворки, это не было полным и достаточно интегрированным решением для создания веб-приложений. Я выбрал symfony , и с тех пор у меня никогда не было необходимости переключаться на что-либо еще.
Я не уверен, что сейчас то же самое, но я всегда думал о ZF как о библиотеке компонентов, а не каркас. Фреймворк имеет несколько более строгие правила работы и часто имеет более интегрированные инструменты поддержки, помогающие людям делать это. Библиотека компонентов в этом отношении более свободна. Когда правила фреймворка соответствуют требованиям большинства приложений в домене фреймворка, я явно предпочитаю это решение. У меня так было с Symfony. Я использую определенные компоненты ZF по мере необходимости,
Что ж, мы разработчики, потому что должны уметь писать «часть» нашего собственного кода, не так ли? Фреймворки не должны быть мастерами, это просто дополнительная помощь.