## Configuring filter sets in general settings |

This tab in JProfiler's general settings allows you to add, edit and delete filter sets which can be activated individually for exclusive filters on the call tree collection tab of the profiling settings dialog. Active filter sets influence the information depth for CPU profiling and the execution speed of the profiled applications.

| What are filter sets? Data collected from classes defined in packages and classes matching a filter set for exclusive filters or failing to match the inclusive filters, are consolidated for the CPU profiling views, the allocation call tree, the allocation hot spots, the heap walker allocation view and the call stack information in the monitor usage views and are shown without further detail. Due to the considerable depth and complexity of external class libraries, an unfiltered view of invocation and allocations trees as well as hot spot lists is often unmanageable and would prevent access to the focal points of your application. The more unfiltered classes you have, the greater the CPU profiling overhead will get. From the point of view of an unfiltered class, filter sets work in both directions: upward filtering When calling a method in an unfiltered class through methods of a number of filtered classes, upward filtering consolidates the path through which an unfiltered method is called into a single step. This is of utmost importance when profiling servlets, JSPs or Enterprise Java Beans in an application server, where the entry point of your class might be buried several hundred methods deep in the application server's framework. Similarly, for GUI applications, the AWT call sequence is container based which makes it next to impossible to find callbacks like `MyAction.actionPerformed` or `MyComponent.paint` without upward filtering of the `java.awt.*` and `javax.swing.*` classes. downward filtering When using external class libraries, most of the time the inner details are not important in performance analysis and optimizations, as they are delivered in binary form and are subject to a vendor controlled update cycle. Downward filtering consolidates a call into a filtered class into a single opaque call. This greatly reduces unwanted detail and directs the focus to the most important parts of your application.

| Adding new filter sets is done by clicking the [New] button on the right hand side of the tab. A new row is added to the filter sets table and you proceed as described below for editing filter sets.

| Editing an existing filter set is done by directly entering information into the columns of the filter sets table. Double-click on the "Name" column to change the name of the filter sets. This name is used for filter set selection in the profiling settings dialog. Double-click on "Filtered packages" to change the list of filtered packages. Entries designate the start of a package name such as `javax.ejb` and are separated by commas such as in `javax.ejb, javax.naming`.

| Deleting an existing filter set is done by selecting the filter set which is to be deleted and clicking the [delete] button on the right hand side of the tab or choosing Delete from the context menu. Note that sessions which previously had this filter activated will lose this filter set and not regain it if you re-add a filter set with the same name.