Следующее решает его:
sudo gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys SOMEKEY
, Если Вы видите что-то вроде этого:
W: GPG error: http://archive.canonical.com jaunty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5
затем добавляют соответствующий ключ:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
можно получить список repos здесь: http://repogen.simplylinux.ch (но не рекомендуется добавить обновления Xorg - по крайней мере, несомненно, создаст резервную копию Вас xorg.conf
)
, Если видят, что ошибки от предыдущего repos - освобождают Ваш /etc/apt/sources.list.d
dir
Никогда не сохранять WebControl для сеанса.
Поскольку он имеет ссылку на объект Page, он в конечном итоге сохраняет каждый элемент управления для сеанса.
Не выполнять оптимизацию преждевременно. :) Если сайт неэффективен, профилируйте код, чтобы определить, где проводить время.
Вы запускали свою программу через FxCop? У него есть набор правил производительности.
Не профилируйте или иным образом не оценивайте производительность в конфигурации отладки. Конфигурация отладки не предназначена для быстрой работы, и вы можете сделать неверные выводы о производительности (например, идея о том, что частичные представления / пользовательские элементы управления работают медленно; это верно для конфигурации отладки, но не для конфигурации выпуска). При профилировании для измерения производительности следует использовать конфигурацию выпуска, чтобы увидеть настоящие проблемы.
Используйте блоки try / catch только при необходимости. Они действительно замедляют ваше приложение.
РЕДАКТИРОВАТЬ для ясности: Под «необходимостью» я подразумеваю для выявления реальных ошибок.
Если вы можете написать какой-то код и быть активными, чтобы гарантировать, что ошибка не будет выдана, сделайте это, так как это будет более производительно, чем позволять генерировать исключение, тогда
Не используйте исключения для управления потоком программы. Я не знаю, кто это сказал первым, но я помню фразу « Исключения должны быть исключительными! ». Они должны быть для случаев, когда возникают непредвиденные проблемы, вещи, которые нельзя проверить до выполнения кода и их выброса.
Худший пример, который я часто вижу, это что-то вроде этого ...
int i = 0;
try
{
i = int.Parse(txt);
} catch {Exception x) {
// Do nothing, i = 0
}
В C #, объекты всегда создаются с новым. Одно это может быть недостатком с определенной точки зрения. Например, если вы создаете объект внутри цикла (что означает, что новый объект создается для каждой итерации в цикле), вы можете замедлить свою программу.
for (int i = 0; i < 1000; ++i)
{
Object o = new Object();
//...
}
Вместо этого создайте экземпляр вне цикла. Object o = new Object ();
Object o = new Object();
for (int i = 0; i < 1000; ++i)
{
//...
}
Создавайте объект в цикле только в том случае, если вам действительно нужно ...
Возможно, небольшое изучение C ++ поможет вам понять механику, лежащую в основе, и знать, когда и где оптимизировать вашу код. Хотя C ++ - это другой язык, есть много вещей, которые вы можете применить к другим языкам, если поймете основы управления памятью (создание, удаление, указатели, динамические массивы / статические массивы и т. Д.).
Большинство проблем с производительностью возникает из-за доступа к диску или вызовов по сети.
Поэтому будьте осторожны, как и как часто вы обращаетесь к файловой системе или базе данных. Вам нужно сделать так много вызовов по сети, или вы можете сделать это за один вызов.
Один хороший пример:
. В этом случае лучшим решением может быть написать собственный код для хранения и чтения значения.
ДЕЙСТВИТЕЛЬНО используйте статические методы, но только если метод часто используется.
НЕ помечайте переменную как статическую, если вы действительно не хотите, чтобы значение переменной было то же самое для всех экземпляров (это сделал другой разработчик, и я с удовольствием выяснял, почему мы получаем странное поведение только тогда, когда на сайт заходят несколько пользователей). Это не из соображений производительности, а просто хороший совет.
Кэширование поможет вам повысить производительность, но вы должны быть осторожны, используя его только там, где это имеет смысл