OCAMLCP(1) General Commands Manual OCAMLCP(1)

ocamlcp, ocamloptp - کامپایلرهای پروفایل‌سازی OCaml

ocamlcp [ گزینه‌های ocamlc ] [ -P flags ] filename ...

ocamloptp [ گزینه‌های ocamlopt ] [ -P flags ] filename ...

دستورهای ocamlcp و ocamloptp پیشانه‌هایی برای ocamlc(1) و ocamlopt(1) هستند که کد منبع را ابزارگذاری (instrument) می‌کنند؛ یعنی کدهایی را برای ثبت تعداد دفعات فراخوانی توابع، پیموده شدن شاخه‌های شرطی و غیره به آن می‌افزایند. اجرای کد ابزارگذاری‌شده، یک پروفایل اجرایی در فایل ocamlprof.dump تولید می‌کند که با استفاده از ocamlprof(1) قابل خواندن است.

ocamlcp همان آرگومان‌ها و گزینه‌های ocamlc(1) را می‌پذیرد و ocamloptp نیز همان آرگومان‌ها و گزینه‌های ocamlopt(1) را می‌پذیرد. تنها یک استثنا وجود دارد: در هر دو مورد، گزینهٔ -pp پشتیبانی نمی‌شود. اگر نیاز به پیش‌پردازش فایل‌های منبع خود دارید، باید این کار را پیش از فراخوانی ocamlcp یا ocamloptp به‌صورت جداگانه انجام دهید.

علاوه بر گزینه‌های ocamlc(1) یا ocamlopt(1) ، دستورهای ocamlcp و ocamloptp گزینه‌ای برای کنترل نوع اطلاعات پروفایل‌سازی می‌پذیرند: گزینهٔ -P letters . این letters مشخص می‌کنند کدام بخش‌های برنامه باید پروفایل‌سازی شوند:

تمام گزینه‌ها
فراخوانی‌های توابع: یک نقطهٔ شمارش در ابتدای بدنهٔ هر تابع تنظیم می‌شود
if ... then ... else: نقاط شمارش در هر دو شاخهٔ then و else تنظیم می‌شوند
حلقه‌های while و for: یک نقطهٔ شمارش در ابتدای بدنهٔ حلقه تنظیم می‌شود
شاخه‌های match: یک نقطهٔ شمارش در ابتدای بدنهٔ هر شاخه از یک تطبیق الگو (pattern-matching) تنظیم می‌شود
شاخه‌های try ... with: یک نقطهٔ شمارش در ابتدای بدنهٔ هر شاخه از یک دریافت‌کنندهٔ استثنا تنظیم می‌شود

به‌عنوان مثال، کامپایل با ocamlcp -P film فراخوانی توابع، if ... then ... else ...، حلقه‌ها و تطبیق الگو را پروفایل‌سازی می‌کند.

فراخوانی ocamlcp(1) یا ocamloptp(1) بدون گزینهٔ -P به‌طور پیش‌فرض معادل -P fm خواهد بود، به این معنی که فقط فراخوانی توابع و تطبیق الگو پروفایل‌سازی می‌شوند.

نکته: برای سازگاری با نسخه‌های پیشین، ocamlcp(1) همچنین گزینهٔ -p را با همان آرگومان و معنای -P می‌پذیرد.

ocamlc(1), ocamlopt(1), ocamlprof(1).
The OCaml user's manual، فصل "Profiling".