最新版 install4j v11 更新於 2024/9/12
最新版 JProfiler v14.0.4 更新於 2024/9/6
JProfiler 是一個全功能的Java剖析工具(profiler),專用於分析J2SE和J2EE應用程式。它把CPU、執行緒和記憶體的剖析組合在一個強大的應用中。JProfiler提供許多IDE和應用伺服器整合用途。
JProfiler直覺式的GUI讓你可以找到效能瓶頸、抓出記憶體漏失(memory leaks)、並解決執行緒的問題。它讓你得以對heap walker作資源回收器的root analysis,可以輕易找出記憶體漏失;heapsnapshot模式讓未被參照(reference)的物件、稍微被參照的物件、或在終結 (finalization)佇列的物件都會被移除;整合精靈以便剖析瀏覽器的Java外掛功能。
Profiler supports profiling on the following platforms:
- Windows
- Mac OS X
- Linux
- FreeBSD
- Solaris
- AIX
- HP-UX
更新介紹
New features:
•Security change: If the "address" option is not specified for the -agentpath parameter, the JProfiler agent will only listen on the loopback interface
•Security change: By default, the command line utility jpenable will now prepare a JVM for profiling in such a way that only local connections are allowed. jpenable has a new -a option to listen on all network interfaces instead.
•Security change: Integration wizards will no longer suggest to configure unencrypted direct TCP connections to remote machines but use SSH connections by default
•Security change: The default connection type of a new profiling session is now "Local TCP connection". The old remote TCP connection is discouraged, but is still available with the "Unsecured TCP connection" connection type.
•Improved the ability to open truncated HPROF files
Bugs fixed:
•Connecting to a Docker or Kubernetes container did not work if the home directory was mounted with the noexec option
•When connecting to Kubernetes containers, JProfiler used to query containers in all namespaces, which could take a very long time. Now, only namespaces that are opened in the tree are queried.
Exceptional Ease Of Use
When you profile, you need the most powerful tool you can get. At the same time, you do not want to spend time learning how to use the tool. JProfiler is just that: simple and powerful at the same time. Configuring sessions is straight-forward, third party integrations make getting started a breeze and profiling data is presented in a natural way. On all levels, JProfiler has been carefully designed to help you get started with solving your problems.
Database Profiling For Jdbc, Jpa And Nosql
Database calls are the top reasons for performance problems in business applications. JProfiler's JDBC and JPA/Hibernate probes as well as the NoSQL probes for MongoDB, Cassandra and HBase show the reasons for slow database access and how slow statements are called by your code. From the JDBC timeline view that shows you all JDBC connections with their activities, through the hot spots view that shows you slow statements to various telemetry views and a list of single events, the database probes are an essential tool for getting insight into your database layer.
Excellent Support For Java Enterprise Edition
Dedicated support for JEE is present in most views in JProfiler. For example, in the JEE aggregation level you see the call tree in terms of the JEE components in your application. In addition, the call tree is split up for each request URI. Also, JProfiler adds a semantic layer on top of the low-level profiling data, like JDBC, JPA/Hibernate, JMS and JNDI calls that are presented in the CPU profiling views. With its JEE support, JProfiler bridges the gap between a code profiler and a high-level JEE monitoring tool.
Higher Level Profiling Data
JProfiler has a number of probes that show you higher level data from interesting subsystems in the JRE. In addition to the Java EE subsystems like JDBC, JPA/Hibernate, JSP/Servlets, JMS, web services and JNDI, JProfiler also presents high level information about RMI calls, files, sockets and processes. Each of these probes has its own set of useful views that gives you general insight, highlights performance problems and allows you to trace single events. And what's more, all these views are also available for your own custom probes that you can configure on the fly within JProfiler.
Stellar Analysis Of Memory Leaks
Finding a memory leak can be impossible without the right tool. JProfiler's heap walker offers you an intuitive interface to solve both simple and complex memory problems. 5 different views and lots of inspections show different aspects of the current set of objects. Each view provides you with essential insights on the selected objects and lets you switch to different objects sets. Questions like why objects are not garbage collected are answered with a single click of the mouse.
Extensive Qa Capabilities
JProfiler is ideally suited as a QA tool, both during development as well as for dedicated QA teams. The rich functionality around snapshot comparisons makes it easy to track progress. JProfiler has strong support for command line operations. This includes the ability to profile, export snapshot data and create snapshots comparisons from the command line. The ant tasks bundled with JProfiler allow you to perform all command line operations from your build script.
Broadest Support For Platforms, Ides And Application Servers
JProfiler integrates into your environment: We provide native agent libraries for a wide range of platforms, both for 32-bit and 64-bit JVMs. Integrations into all popular IDEs makes profiling during development as easy as running your application. And the large number of integrations wizards for nearly all application servers on the market ensures that you can get started with a few clicks and not with reading documentation.
Low Overhead
JProfiler records data only when you need it. In fact, you can start your application with the JProfiler agent and attach the JProfiler GUI at a later time. When you do not record any data, the overhead is extremely small. That's what we call on demand profiling. Invariably, there are a lot of things you can adjust in an advanced profiler. JProfiler shows you how your profiling settings will impact performance and offers you templates to quickly select profiling settings for common use cases.
The Powerful Cpu Profiler
Fixing performance bottlenecks is the most frequent use case for a profiler. However, CPU data can be overwhelming in its level of detail and the way data is collected can make a huge difference in usability. With JProfiler, you have a decisive advantage when trying to find the reason for a problem. Call tree view filters, aggregation levels and thread status selectors are just some examples of JProfiler's versatility in this area.
The Integrated Thread Profiler
Problems related to threading are much more frequent than one might assume. Without a thread profiler, you only have a minimal chance to tackle such issues. A whole range of otherwise opaque problems can
JProfiler支持以下操作模式:
- Live profiling of a local session
Once you define how your application is started, JProfiler can profile it and you immediately see live data from the profiled JVM. To eliminate the need for session configuration, you can use one of the many IDE plugins to profile the application from within your favorite IDE.
- Live profiling of a remote session
By modifying the VM parameters of the java start command you can get any Java application to listen for a connection from the JProfiler GUI. The profiled application can not only run on your local computer, JProfiler can attach to a profiled application over the network. In addition, JProfiler provides numerous integration wizards for all popular application servers that help you in setting up your application for profiling.
- Offline profiling and triggers
You do not have to connect with the JProfiler GUI to the profiled application in order to profile it: With offline profiling you can use JProfiler's powerful trigger system or the JProfiler API to control the profiling agent and save snapshots to disk. At a later time you can open these snapshots in the JProfiler GUI or programmatically export profiling views with the command line export tool or the export ant task.
- Snapshot comparisons
In JProfiler, you can save a snapshot of all current profiling data to disk. JProfiler offers a rich comparison facility to see what has changed between two or more snapshots. Alternatively you can create comparison reports programmatically with the command line comparison tool or the comparison ant task.
- Viewing an HPROF snapshot
JProfiler can open HPROF snapshots that have been taken with JVM tools such as jconsole or jmap or that have been triggered by the -XX:+HeapDumpOnOutOfMemoryError JVM parameter.
- Request tracking
With the innovative concept of request tracking, JProfiler makes profiling of parallel and multi-threaded programming much easier. Request tracking connects call sites with execution sites between different threads with hyperlinks in the call tree view. The following multi-threaded systems can be tracked:» Executors from the java.util.concurrent package
» Kotlin coroutines
» AWT events
» SWT events
» Thread starts
In addition, JProfiler can track calls across JVM boundaries if both JVMs are profiled and open in JProfiler. The following remote calls can be tracked.» HTTP requests
» RMI calls
» Web service calls
» Remote EJB calls - Easy creation of custom probes
JProfiler offers a custom probe wizard that allows you to define your custom probes directly in the JProfiler GUI. Your custom probes are deployed to the profiled application by JProfiler and you do not even have to restart the profiled application when changing or adding custom probes.
影片介紹
JProfiler supports profiling on the following platforms:
OS | Architecture | Supported JVMs | |
Windows 11/10/8/7 | x86 | Hotspot | 1.5 - 21 |
Windows Server 2022/2019/2016/2012 | x64/AMD64 | IBM/OpenJ9 | 1.5 - 21 |
macOS 10.12 - 14 | Intel, Apple | Hotspot | 1.8 - 21 |
IBM/OpenJ9 | 1.8 - 21 | ||
Linux | x86 | Hotspot | 1.5 - 21 |
x64/AMD64 | IBM/OpenJ9 | 1.5 - 21 | |
Linux | PPC64LE | Hotspot | 1.5 - 21 |
IBM/OpenJ9 | 1.5 - 21 | ||
Linux | ARMv7 ARMv8 |
Hotspot | 1.8 - 21 |
FreeBSD 13 | AMD64 | FreeBSD | 1.8 - 21 |
AIX 7.2 - 7.3 | PPC64 | IBM/OpenJ9 | 1.8 - 21 |
The JProfiler GUI frontend needs a Java 11 VM to run. The attach command line tools jpenable, jdump and jpcontroller need a Java 6 VM.
Perfino 強大的監控代理為您提供以最小的開銷實現最大洞察
是一款比較有特色的JVM監測軟體,為您提供監控多個java虛擬機之間的活動和相互作用的方式。它的主要功能,是對JVM進行偵測,以及對業務事務進行記錄,提供洞察他們的表現,以及他們的錯誤。Perfino的UI為其功能性做了優化,使得它不但能夠用於及時trouble shooting,也能用於分析歷史數據。通過設置不同的閾值,觸發器和報警器,可以探測到JVM的異常。Perfino的最大特色,是它可以提供完整JVMTI級別的數據採樣,並直接將採集的數據發送給JProfiler進行分析。
特色
Micro-Service Friendly Licensing
一個監控它們的許可證:使用perfino,您不會限制受監控JVM的數量或任何其他指標,例如記錄的業務事務。
無論您的系統有多大,或者您希望監控多少微服務,您的perfino許可證都可以滿足您的要求。
Immediately See What's Wrong
當您登錄perfino時,儀表板會顯示一切是否正常 - 或者是否出現問題。 perfino可以對您的應用程式可接受的性能級別進行細粒度控制。儀表板是您開始深入查看更詳細的數據視圖的地方。
Show Calls Between Vms
perfino可以監控跨多個VM的業務事務。在Web層中調用EJB服務器並進一步調用Web服務 - 在perfino中這些操作是連接的,即使您進行方法級別的採樣也是如此。調用圖不僅向您展示了現在正在發生的事情的大局,還展示了過去發生的事情。
React To Off-Nominal Conditions
當出現嚴重錯誤時,您需要採取措施:創建警報,發送電子郵件或收集更詳細的數據。在perfino中,您可以使用觸發器和操作來配置應急響應策略。實現像“當業務事務掛起,進行線程轉儲並將其發送到我的收件箱”這樣的場景在perfino UI中非常容易。
Telemetries Everywhere
perfino中的遙測捕獲受監視VM中的重要標量值,例如每分鐘數據庫操作的數量。作為儀表板和虛擬機視圖中的迷你圖,它們可以讓您即時了解當前趨勢,在完整顯示中它們可以追溯到最開始。遙測數據永遠不會丟棄,只能轉換為更高的分辨率。
Ultra-Flexible Business Transactions
perfino自動檢測來自servlet容器,EJB或RMI調用等子系統的各種業務事務。此外,它還為您提供了幾種方法來調用業務事務。無論您是在perfino UI中明確選擇POJO方法,還是告訴perfino一個重要的註釋,或者使用API在您自己的代碼中創建事務取決於您最實用的方法。
Call Tree Of Business Transactions
perfino中的事務被組織成一個累積的調用樹 - 就像你最喜歡的探查器一樣。詳細程度取決於您 - 這取決於您配置為業務事務的內容。非常慢的事務等策略違規在呼叫樹中單獨顯示,因此您可以單獨分析它們。 perfino還將服務器上的業務事務與瀏覽器中的頁面加載時間相關聯。
Database Performance And Bottlenecks
像JDBC語句這樣的數據庫操作,或者對mongoDB和其他NoSQL數據庫的查詢都是perfino中的第一類物件。當您提出“我的應用程式中哪個SQL查詢最慢?”這一問題時,perfino會提供答案以及指向負責查詢的業務事務的累積回溯。
Method Level Sampling
為了研究業務事務的內部調用結構和方法級別熱點,perfino基於每個事務執行定期方法級別抽樣。對於慢速和非常慢的事務,您可以配置自動方法級別採樣。在許多情況下,這些示例可以立即解釋與數據庫無關的性能問題。
Historical Comparisons
能夠比較兩個時間點之間的性能非常重要,特別是對於敏捷發布管理。使用perfino,您可以無限回顧地比較選定的業務事務或整個調用樹 - 隨著時間的推移,您的數據會累積到更大的時間間隔。比較功能直接構建在用於查看數據的視圖中。
Cross-Over To Profiling
縱深防禦是一種適用於生活中許多情況的策略。當您的業務在線時,您有時需要每個工具,這就是為什麼perfino可以引入本機JVMTI採樣,最終甚至為JProfiler連接準備VM。因此,當您需要分析器的全部功能時,隨時可使用。
install4j 是一個功能強大的,多平臺Java安裝檔生成工具,用於生成Java應用程式本地化的安裝及應用程式發佈。install4j 的優異性在於它易於使用,緊密的集成到目標平臺,以及靈活的JRE 管理與部署選項。
install4j的圖形用戶介面中可以實現的功能:
* 完全自定義發佈樹
在發佈樹的每一個目錄中,你能設置整個目錄內容或是磁片上任何目錄的單個檔。定義的視圖與結果視圖讓你能完全控制安裝程式將發佈的檔。
* 處理特定平臺的差異
install4j提供方便的“包含/排除”機制,使其適應平臺方式來進行發佈。
* 針對Unix, Linux 及Mac OS X所定義的文件許可權
對發佈樹的每一個元素,當其安裝在類似於Unix這樣的平臺上時,你能自定義用戶訪問的許可權。
* 定義優良的卸載策略
對發佈樹的每一個元素,你能決定在卸載時是否刪除它。
* 定義覆蓋策略
對發佈樹的每一個元素,你能配置不同的覆蓋策略,當安裝過程中需要覆蓋檔時,這些覆蓋策略會指示nstall4j進行相應的操作。
* 定義安裝的組件
你能定義檔及目錄的分組,形成分離的安裝元件,這樣你就可提供給用戶來選擇只安裝一定的元件。