Tuning & Debugging

The Wolfram Language's highly optimized architecture makes it easy to create programs that are both elegant and efficient. Its symbolic character lets you immediately run and test even the smallest program fragments. And it provides full-scale software engineering support, from arbitrarily detailed compilation control to novel high-level symbolic analysis.

(RefLink[Monitor, paclet:ref/Monitor]) — dynamically monitor values during a computation

(RefLink[StepMonitor, paclet:ref/StepMonitor]), (RefLink[EvaluationMonitor, paclet:ref/EvaluationMonitor]) — monitor built-in algorithms

(RefLink[Sow, paclet:ref/Sow]), (RefLink[Reap, paclet:ref/Reap]) — accumulate lists of values from within a computation

(RefLink[EvaluationData, paclet:ref/EvaluationData]) — give detailed data on the evaluation of an expression

(RefLink[Echo, paclet:ref/Echo]) — display an intermediate expression from a computation

(RefLink[EchoFunction, paclet:ref/EchoFunction]) — display an intermediate expression after applying a function

(RefLink[PrintTemporary, paclet:ref/PrintTemporary]) — print temporary output, cleaning up at the end of a computation

(RefLink[Dialog, paclet:ref/Dialog]) — enter a subsession at any stage in a computation

(MenuGrayLink[Evaluation, paclet:guide/EvaluationMenu]) ▶ (MenuGrayLink[Debugger, paclet:ref/menuitem/Debugger]) — start interactive debugger

Assertions

(RefLink[Assert, paclet:ref/Assert]) — give an assertion to be checked when code is executed

(RefLink[$AssertFunction, paclet:ref/$AssertFunction]) — function to apply when assertions fail

(OrangeLink[Execution Tracing », paclet:guide/SymbolicExecutionHistory])

(OrangeLink[Messages », paclet:guide/Messages])

(RefLink[On, paclet:ref/On]) — switch on a single message or a group of messages

(OrangeLink[Time », paclet:guide/TimeMeasurementAndOptimization])

(RefLink[TimeConstrained, paclet:ref/TimeConstrained]) — constrain CPU time for a computation

(RefLink[Timing, paclet:ref/Timing]), (RefLink[AbsoluteTiming, paclet:ref/AbsoluteTiming]) — CPU and absolute timing

(RefLink[RepeatedTiming, paclet:ref/RepeatedTiming]) — average timing based on repeated evaluation

Network Connectivity

(RefLink[NetworkPacketTrace, paclet:ref/NetworkPacketTrace]) — record network activity during an evaluation

(OrangeLink[Memory », paclet:guide/MemoryMeasurementAndOptimization])

(RefLink[Clear, paclet:ref/Clear]) — clear values

(RefLink[MemoryConstrained, paclet:ref/MemoryConstrained]) — constrain memory usage in a computation

Program Tuning

(RefLink[Method, paclet:ref/Method]) — specify particular methods for algorithmic functions to use

(RefLink[PerformanceGoal, paclet:ref/PerformanceGoal]) — specify whether to optimize for quality, speed, etc.

(RefLink[ExampleData, paclet:ref/ExampleData]) — data for test examples

(OrangeLink[Parallelization », paclet:guide/ParallelComputing])

(RefLink[Parallelize, paclet:ref/Parallelize]) — automatically parallelize computations across available processors

Dynamic Interactivity Tuning

(OrangeLink[Low-Level System Optimization », paclet:guide/LowLevelSystemOptimization])

(OrangeLink[Systematic Testing & Verification, paclet:guide/SystematicTestingAndVerification])

(RefLink[VerificationTest, paclet:ref/VerificationTest]) — test whether a given input generates a specified output

(RefLink[TestReport, paclet:ref/TestReport]) — generate a test report by running a collection of tests

(OrangeLink[Randomization Control, paclet:guide/RandomNumberGeneration])

Capturing Display Output

(OrangeLink[Web Testing, paclet:guide/WebBrowserAutomation])

(OrangeLink[Code Manipulation », paclet:guide/EvaluationControl])

(RefLink[GraphPlot, paclet:ref/GraphPlot]) — lay out a symbolic call graph

(OrangeLink[Symbol Namespace », paclet:guide/SymbolHandling])