ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <at@altlinux.ru>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: Re: [devel] psec O_NOATIME
Date: Tue, 13 Jun 2006 20:25:07 +0400
Message-ID: <20060613162507.GM25291@localhost.localdomain> (raw)
In-Reply-To: <20060613155155.GE10544@basalt.office.altlinux.org>

[-- Attachment #1: Type: text/plain, Size: 2059 bytes --]

On Tue, Jun 13, 2006 at 07:51:55PM +0400, Dmitry V. Levin wrote:
> On Tue, Jun 13, 2006 at 07:47:25PM +0400, Alexey Tourbin wrote:
> > On Tue, Jun 13, 2006 at 07:25:28PM +0400, Dmitry V. Levin wrote:
> > > > В общем написать osec на шелле/перле и завернуть его в qa-robot
> > > А зачем?
> > 
> > Юниксвейнее.  Например, зачем использовать fts(3), если есть find(1)?
> fts быстрее.

Я профилировал.  Есть полтора соображения: 0) профилировать невозможно,
потому что буферный кеш вносит свою лепту: результаты последовательных
запусков могут отличаться в разы; 1) основное время уходит на чтение
файлов с диска, т.к. надо вычислять md5sum.  Т.е. bottleneck в данном
случае -- это как раз IO, и его никак оптимизировать нельзя.  Этот пайп,
который 'find /lib /usr/lib |perl ...' -- это всего два процесса на весь
psec.  Вот если предпринять попытку обойтись без перла, т.е. типа

find /lib /usr/lib |while read -r f; do md5sum=$(md5sum "$f")

тогда для обработки каждого файла потребуется ещё минимум один
fork+exec, что уже может заметно сказаться на скорости.

> > И зачем использовать cdb(3), если можно писать названия файлов и их
> > md5sum прямо в stdout?
> cdb быстрее.

Быстрее чего?  Писать в stdout всяко быстрее.  Потом sort(1) отсортирует
по первому полю, и join составит список старых/новых файлов.  Без
предварительной сортировки main.cc:check_changes() быстрее работать
не может, поскольку на каждый ключ нужен отдельный lookup (проход по
дереву?), а при слиянии lookup не нужен.  Т.е. osec вручную реализует
comm/join для двух cdb файлов.

> > А qa-robot сделает diff между двумя выводами.
> > С++ в таком раскладе совсем не нужен.
> Другими словами, долой оптимизацию! :)

Оптимизацию чего?  Если выяснится, что пайп 'find |perl' откусывает
заметное время (во что я не верю), то можно будет и на чистом перле
переписать.  Во всяком случае у меня сложилось такое представлениие, что

t(disk_IO) >> t(system_call) >> t(library_call)

где t -- время и ">>" означает "много большое" (минимум на порядок).

[-- Attachment #2: Type: application/pgp-signature, Size: 191 bytes --]

  reply	other threads:[~2006-06-13 16:25 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-13 10:06 [devel] sucap не работает Alexey Tourbin
2006-06-13 12:13 ` Dmitry V. Levin
2006-06-13 12:52   ` [devel] psec O_NOATIME Alexey Tourbin
2006-06-13 15:25     ` Dmitry V. Levin
2006-06-13 15:47       ` Alexey Tourbin
2006-06-13 15:51         ` Dmitry V. Levin
2006-06-13 16:25           ` Alexey Tourbin [this message]
2006-06-13 15:53         ` [devel] O_NOATIME behaviour changed in linux-2.6? Dmitry V. Levin
2006-06-13 16:31           ` Sergey Vlasov
2006-06-13 15:04   ` [devel] sucap не работает Alexey Tourbin
2006-06-13 15:30     ` [devel] sucap + execcap = Alexey Tourbin
2006-06-13 19:22       ` Alexey Tourbin
2006-06-14 22:12         ` Dmitry V. Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060613162507.GM25291@localhost.localdomain \
    --to=at@altlinux.ru \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git