Архив метки: Ubuntu

Пример ускорения python используя ctypes

Один из вариантов ускорить выполнение кода Python — переписать медленный метод на язык C, с помощью ctypes можно подключать библиотеки написанные на C.
Ниже пример вызова C-метода и сравнение производительности.

1) Пишем метод (файл myfib.c)

unsigned long fib(unsigned long x)
{
if(x < 2) return x;
return fib(x-1) + fib(x-2);
}

2) Компилируем:

gcc -shared -Wl,-soname,myfib.so -o myfib.so -fPIC myfib.c

3) Вызываем из Python и сравниваем с функцией написанной на чистом python:

import ctypes
import timeit

fib = ctypes.CDLL('./myfib.so').fib
fib.restype = ctypes.c_long
fib.argtypes = (ctypes.c_ulong,)

print timeit.timeit('fib(32)', 'from __main__ import fib', number=1)

def pyfib(x):
if x < 2: return x
return pyfib(x-1) + pyfib(x-2)

print timeit.timeit('pyfib(32)', 'from __main__ import pyfib', number=1)

Результат:

0.0463268756866
1.08009696007

В итоге, за счет использования ctypes, мы получили ускорение в 23 раза.

Если использовать оптимизацию при компиляции, то можно получить большую производительность, для этого нужно указать ключ оптимизации:

gcc -O3 -shared -Wl,-soname,myfib.so -o myfib.so -fPIC myfib.c

Варианты ключей оптимизации:
-O1 — Базовая оптимизация
-O2 — GCC выполняет почти все поддерживаемые оптимизации, эта опция уменьшает как время компиляции так и время выполнения сгенерированного кода.
-O3 — Более сильная оптимизация, включает -O2 + некоторые дополнительные опции.

С учетом оптимизации -O3, мы получили такой результат:

0.023335695266
1.08294892311

Это быстрее в 46 раз чем на чистом python.

Тестировалось на ubuntu 12.10, python 2.7

Автор: D1VER
Дата публикации: 2013-12-16T05:21:00.001-08:00

TP-LINK TL-WN821N (RTL8192CU) в Linux Mint 15 и Ubuntu 13.04.

Wi-Fi USB адаптер TP-LINK TL-WN821N, основан на чипе RTL8192CU, поддержка которого в ядро Linux добавлена начиная с версии 2.6.38, что в идеале означает, что нужно всего-лишь подключить его к USB порту и «из коробки» он мгновенно без перезагрузок и дополнительных настроек (кроме ввода пароля на доступ к Wi-Fi соединению) должен заработать. Но на деле оказалось что его поддержка в ядре реализована чертовски криво и лишь у немногих счастливчиков всё работает гладко. Читать →

Xerox Phaser 6000 в Xubuntu 12.10

 Xerox Phaser 6000 прекрасно работает под Linux, но драйвера для него нужно установить отдельно, так как в комплектации «из коробки» они отсутствуют. На официальном сайте, есть пакеты с драйверами как для deb-based, так и для rpm-based дистрибутивов. Пример установки драйверов на дистрибутив Xubuntu 12.10:

cd /tmp/ && wget http://download.support.xerox.com/pub/drivers/6000/drivers/linux/en_GB/6000_6010_deb_1.01_20110210.zip && unzip 6000_6010_deb_1.01_20110210.zip && cd deb_1.01_20110210/ && sudo dpkg -i xerox-phaser-6000-6010_1.0-1_i386.deb

 Далее, остаётся установить принтер через веб-интерфейс CUPS или с помощью любой другой утилиты управления принтерами, используемой в вашем дистрибутиве Linux.

Автор: Yar4e

Новая версия почтового клиента Geary вышла

Недавно стало известно, что компания Yorba Foundation заявила об окончании разработки и начале выпуска нового небольшого почтового клиента — Geary версии 0.4. Дизайн и система взаимодействий были разработаны не без участия GTK 3+ (кроссплатформенной библиотеки). Вполне возможна и разработка мобильных приложений для принятия и отправки почты. Читать →

Ubuntu 13.10 может перейти с браузера Firefox на Chromium

В настоящий момент на Ubuntu Developer Summit решается судьба стандартного браузера, встроенного в ОС Ubuntu. Напомним, что на данный момент таковым является Firefox. Но есть очень большой шанс, что его заменят на Chromium. Уж слишком большая нынче поддержка у этого свободного браузера среди разработчиков системы. Читать →

ПРО ВИРУСЫ ДЛЯ LINUX


В первую очередь дам ответы на самые распространенные вопросы о вирусах в Linux и в Ubuntu в частности.

Вопрос 1. Существуют ли вирусы для Linux?
Ответ: Да, конечно, но их в несколько тысяч раз меньше чем под Windows и до сих пор ни один из них не получил массового распространения.

Вопрос 2. Могут ли вирусы для Windows заразить компьютер с Linux?
Ответ: Да, если в Linux установлен Wine, то, в принципе, в Linux могут работать вирусы для Windows, однако многие вирусы используют именно недокументированные системные вызовы Windows, которые очень плохо реализованы в Wine и поэтому риск заражения намного меньше. Далее, вирусы могут работать и в Windows , установленной на виртуальной машине, запущенной под управлением Linux. Кроме того, компьютеры с Linux могут быть пассивными носителями вирусных файлов, которые могут снова начать работать, после того как их, например, на флешке перенесут на компьютеры, работающие под управлением Windows. Читать →