Что тяжелее - внешний процесс или вызов библиотеки?
Допустим понадобилось узнать разрешение экрана. Что лучше:
import gtk.gdk
print("%dx%d" % (gtk.gdk.screen_width(), gtk.gdk.screen_height()))
или:
from commands import getstatusoutput
status, output = getstatusoutput("xwininfo -root")
width = re.compile(r"Width: (\d+)").findall(output)[0]
height = re.compile(r"Height: (\d+)").findall(output)[0]
print("%sx%s" % (width, height))
================================================================
Формат вывода большинства утилит не стандартизирован, отсутствует документация
и гарантии что новые версии не изменят формат вывода, тогда как для
библиотечных вызовов зачастую есть документация и вызовы предварительно
помечаются как устаревшие, обратно-несовместимые библиотеки изменяют
пространство имен.
С этой точки зрения библиотеки предпочтительней.
================================================================
Заметно использование утилит для таких задач как нотификация:
system("notify-send", "Title", "Msg");
вместо сложностей с подключением libnotify.
Часто встречаешь:
cat file.txt | grep PATT
pid=`cat serv.pid`
вместо:
grep PATT <file.txt
read pid <serv.pid
Т.е. сейчас тенденция создавать процессы - т.к. это понимает и знает каждый -
значит быстрее, значит дешевле.
================================================================
Вот мне и не понятно как правильно...
--
Best regards!
Reply to: