воскресенье, 5 декабря 2010 г.

Завел себе КотЭ

Вот такая вот Муська.

 
любимая игрушка - пивная пробка  :)

вторник, 7 сентября 2010 г.

Python range vs xrange

В Python существуют две, аналогичные с виду фунцкции: range и xrange, которые часто используются в циклах for. Обе они имеют сходный синтаксис:
range(start,stop,step) или xeange(start,stop,range). Где start,stop и step соответственно: начальное, конечное значения и шаг. Однако, если range возвращает список значений (list), xrange возвращает объект, что более эффективно использует память и более производительно в циклах.

Вот пример скрипта, демонстрирующий разницу в производительности (для сравнения еще и цикл while):

#!/usr/bin/python

def test_range(rng):
    for i in range(rng): pass

def test_xrange(rng):
    for i in xrange(rng): pass

def test_while(rng):
    i=0
    while i<=rng:
        i=i+1

if __name__=='__main__':
    from timeit import Timer
    testing_range=(100,1000,10000,100000,1000000,4000000)
    print "%7s %10s %16s %16s"%('Size','Range','XRange','While')
    for rng in testing_range:
        t_range=Timer('test_range(%i)'%rng,'from __main__ import\ test_range').timeit(number=1)*1000000
        t_xrange=Timer('test_xrange(%i)'%rng,'from __main__ import\ test_xrange').timeit(number=1)*1000000
        t_while=Timer('test_while(%i)'%rng,'from __main__ import\ test_while').timeit(number=1)*1000000
        print "%7d\t %9.2f\t %9.2f\t %9.2f\t"%(rng,t_range,t_xrange,t_while)


И вот резальтат вывода:
 Size      Range           XRange            While
    100         17.17         10.97         20.98    
   1000         82.97         59.84        221.97    
  10000       1345.16        559.09       2100.94    
 100000       9470.94       5361.08      18620.01    
1000000     100019.93      57285.07     189877.99    
4000000     389897.11     237751.96     779174.09

четверг, 11 марта 2010 г.

vmware server и Firefox 3.6

Досадная особенность - VMware Server 2 "не дружит" с 3.6 "лисом".
Кое-никакое решение этой проблемы следующее:
Включить в FF поддержку SSL v.2: about:config security.enable_ssl2 = true. Теперь есть доступ к интерфейсу управления, но консоль все равно не стартует. Зато можно её запустить ярлычком с десктопа.

четверг, 25 февраля 2010 г.

"Тормоза" VMWARE Server 2 на Linux хосте

После установки со значениями по умолчанию в VMWARE Server 2.0.2 Build 203138 на Linux хосте есть проблемы с производительностью гостевых систем с объемом памяти >512Мб.
Исправить проблему помогло следующее:
Установить в /proc/sys/vm следующие значения параметров:
swappiness = 0
overcommit_memory = 0
dirty_background_ratio = 2
dirty_ratio = 100
dirty_expire_centisecs = 9000
dirty_writeback_centisecs = 3000

Полностью описание здесь