關於 FreeBSD 下 pkg_version 與 portversion 的速度

使用 portversion 而非 pkg_version 看到 以速度的差異推薦 portversion,但是 上的 AuthImage 不太喜歡我... 所以乾脆寫一篇出來好了。

portversion 是 的套件之一,在 portversion 裡的 manpage 提到他使用 INDEX 檔來判斷版本:

portversion is very similar to pkg_version(1), but is optimized for portupgrade(1) and runs much faster than pkg_version(1) thanks to the ports database generated from the INDEX file. See portsdb(1) for details.

但 pkg_version 用 -I 的參數也可以用 INDEX 檔,這是 -I 的說明:

Use only the index file for determining if a package is out of date. This is much faster than using the version number from a port's Makefile, at the expense of potentially giving an incorrect result if the index file is out of date.

速度上呢?這是最慢的 pkg_version (without -I):

44.992u 41.211s 1:27.37 98.6% 221+441k 1634+0io 56pf+0w

這是 portversion:

2.970u 0.893s 0:03.79 101.8% 29+16680k 0+0io 0pf+0w

這是最快的 pkg_version -I:

1.402u 0.156s 0:01.55 100.0% 43+1898k 0+0io 0pf+0w

This entry was posted in Computer, FreeBSD, Murmuring, OS, Software. Bookmark the permalink.

2 Responses to 關於 FreeBSD 下 pkg_version 與 portversion 的速度

  1. LGJ says:

    多謝指正。不過,同樣使用 INDEX 的情況下,速度似乎不會差那麼多?我再研究看看。

    ps.我不清楚為何無法在 bs2 blog 上留言,我再問一下LHD 看看。

  2. Gea-Suan Lin says:

    一個是 binary 一個是 ruby18,可能是這個原因吧...

Leave a Reply

Your email address will not be published. Required fields are marked *