[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Что тяжелее - внешний процесс или вызов библиотеки?



Допустим понадобилось узнать разрешение экрана. Что лучше:

  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: