Quick Lookにどのファイル形式のジェネレータが登録されているかを調べたいときは、qlmanage -m pluginsを使う。

$ qlmanage -m plugins
plugins:
  org.openxmlformats.wordprocessingml.document -> /System/Library/QuickLook/Office.qlgenerator (48)
  com.apple.iwork.keynote.sffkey -> /System/Library/QuickLook/iWork.qlgenerator (249)
  ...

-mに統計の名前を続けると、Quick Lookのサーバーであるquicklookdの情報も表示できる。実行例はmacOS 27.0.1のもの。

指定できる名前

-mの後ろには、次の名前を指定する。

名前表示される内容
pluginsジェネレータの一覧
serverquicklookdの稼働時間など
memoryメモリの使用量
burst直近の連続処理の統計
threads同時アクセスの統計
otherその他の情報

名前は複数並べられる。省略すると、server、memory、pluginsが表示される。直近の連続処理がある場合は、last burst:の行も表示される。

$ qlmanage -m
server: living for 1s (0 requests handled) - instant off: yes - arch: ARM64 - user id: 501
memory used: 0 MB (725872 bytes) - used descriptors: 19/256
plugins:
  ...

表示の順序は、指定した順序によらず固定である。qlmanage -m plugins serverでも、serverが先に表示される。

存在しない名前を指定すると、エラーになる。

$ qlmanage -m bogus
qlmanage: invalid argument bogus
Usage: qlmanage [OPTIONS] path...
...

-mは、-tや-pとは同時に指定できない。qlmanage -t -m server fileはillegal option for t -- mで失敗する。

pluginsでジェネレータの対応表を確認する

pluginsは、コンテンツタイプのUTIと、担当するジェネレータの対応表を表示する。1行が1つのUTIで、括弧内はジェネレータのバージョンである。ジェネレータが読み込み済みの場合は、(48 - loaded)のようにloadedが付く。

  com.adobe.pdf -> /System/Library/QuickLook/PDF.qlgenerator (1114)

特定のファイル形式を調べるには、grepで絞り込む。

$ qlmanage -m plugins | grep -E '^  (com.adobe.pdf|public.html) '
  com.adobe.pdf -> /System/Library/QuickLook/PDF.qlgenerator (1114)
  public.html -> /System/Library/QuickLook/Web.qlgenerator (1114)

ファイルのUTIはmdlsで調べる。

$ mdls -name kMDItemContentType sample.txt
kMDItemContentType = "public.plain-text"

一覧に載らないUTIもある。public.pngやpublic.jpegは、pluginsに表示されない。

ジェネレータごとの件数を集計する

sedやsortで、ジェネレータごとに担当するUTIの数を数えられる。

$ qlmanage -m plugins | grep -- '->' | sed 's/.*-> //;s/ (.*//' | sort | uniq -c | sort -rn | head -n 5
  23 /System/Library/QuickLook/Office.qlgenerator
  16 /System/Library/QuickLook/iWork.qlgenerator
   7 /System/Library/QuickLook/Text.qlgenerator
   5 /System/Library/QuickLook/iCal.qlgenerator
   4 /System/Library/QuickLook/Web.qlgenerator

この環境では79件のUTIが登録されており、19種類のジェネレータが担当している。

-cと-gでコンテンツタイプとジェネレータを指定するときは、この一覧で選ぶ。

参考: 【qlmanage】コンテンツタイプとジェネレータを指定してサムネイルを生成する (-c, -g)

serverでquicklookdの稼働時間を確認する

serverは、quicklookdの稼働時間、処理したリクエストの数、アーキテクチャ、実行ユーザーのIDを表示する。

$ qlmanage -m server
server: living for 8s (0 requests handled) - instant off: yes - arch: ARM64 - user id: 501

living forの値は、実行するたびに増える。

requests handledは、-tでサムネイルを生成しても増えない。200個のテキストファイルを-t -xで生成した直後に実行しても、値は0のままだった。

$ qlmanage -t -x -z *.txt | tail -n 2
Thumbnails produced: 200
Duration: 1.1792 seconds (average 0.00589602 seconds per file)
$ qlmanage -m server
server: living for 16s (0 requests handled) - instant off: yes - arch: ARM64 - user id: 501

-p -xでdocxのプレビューを生成すると、リクエストとして数えられる。

$ qlmanage -p -x -o out s.docx > /dev/null
$ qlmanage -m server
server: living for 0s (1 requests handled) - instant off: yes - arch: ARM64 - user id: 501

memoryでメモリの使用量を確認する

memoryは、メモリの使用量とファイルディスクリプタの使用数を表示する。

$ qlmanage -m memory
memory used: 0 MB (458032 bytes) - used descriptors: 19/256

19/256は、使用中のファイルディスクリプタが19個で、上限が256個であることを表す。

burst、threads、otherを確認する

burstは直近の連続処理の統計である。処理がない状態ではnoneになる。

$ qlmanage -m burst
last burst: none

-p -xでdocxのプレビューを生成した後は、リクエストの数と所要時間が表示される。

$ qlmanage -p -x -o out s.docx > /dev/null
$ qlmanage -m burst
last burst: during 0.091s - 1 requests - 0.000s idle

threadsは、同時に処理したリクエストの数である。この環境では、確認した範囲で0 threadsのままだった。

$ qlmanage -m threads
max concurrent requests: 0 threads (0 threads current)

otherは、空行だけを出力する。

サムネイルの生成状況を調べたいときは、-zで所要時間を測る。

参考: 【qlmanage】サムネイルの生成にかかる時間を測る (-z)