.NET API для Google Talk? [закрытый]

5
задан Shimmy 6 February 2010 в 22:01
поделиться

1 ответ

Инструменты для разработки Chrome великолепны, но, поскольку Chrome не является браузером, вам никогда не придется беспокоиться о производительности JS, и он многое оптимизирует, это не очень помогает в поиске узких мест других браузеров. IE 8 имеет инструменты для разработки , которые позволяют профилировать, поэтому вы можете найти это полезным, помимо обычного профилировщика Firebug.

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

Кроме того, если вы обеспокоены, в частности, функцией jQuery.live, позвольте мне быстро объяснить, как она работает: Допустим, вы делаете $ ('# links Wrap a') .live ('click', fn);

  • Это создает один и только один обработчик событий и присоединяет его к # linkswrap .
  • При щелчке по одной из ссылок событие click всплывает вверх по дереву DOM, в итоге достигая # linkswrap .
  • jQuery.live обнаруживает, из какой ссылки он на самом деле пришел. Эта информация находится в объекте Event браузера.
  • jQuery.live применяет fn в контексте ссылки, которая была нажата

. Браузер присоединяет только одно событие, поэтому использование памяти невелико, и ему также не нужно постоянно проверять новые элементы, он использует событие пузыря в прохладном пути.

На самом деле можно утверждать, что если вы прикрепляете тысячи событий к странице, метод .live может быть более эффективным, если вы используете хорошие селекторы. (например, .something .foo .bar.baz требует большого количества проходов и пузырьков, но # parentOfTheLinks a.links будет быстро)

-121--2356652-

Для быстрого создания используйте модуль массива.

Использование модуля массива в ~ 5 раз быстрее для создания, но примерно в два раза медленнее для доступа к элементам по сравнению с обычным списком:

# Create array
python -m timeit -s "from array import array" "a = array('I', '\x00'
 * 100000000)"
10 loops, best of 3: 204 msec per loop

# Access array
python -m timeit -s "from array import array; a = array('I', '\x00'
* 100000000)" "a[4975563]"
10000000 loops, best of 3: 0.0902 usec per loop

# Create list
python -m timeit "a = [0] * 100000000"
10 loops, best of 3: 949 msec per loop

# Access list
python -m timeit  -s "a = [0] * 100000000" "a[4975563]"
10000000 loops, best of 3: 0.0417 usec per loop
-121--1552775-

Google Talk использует XMPP . Вот API .NET для этого протокола. Существует список других библиотек .

8
ответ дан 14 December 2019 в 04:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: