การทดสอบประสิทธิภาพ
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
ประสิทธิภาพรันไทม์ของแอปแบ่งออกเป็นการทดสอบในเครื่องและการทดสอบภาคสนาม
โปรดทราบว่าทั้ง 2 พื้นที่นี้ให้ผลลัพธ์และเมตริกที่แตกต่างกัน ตราบใดที่ผลลัพธ์สรุปได้ชัดเจนแล้ว ความแตกต่างดังกล่าวก็ยอมรับได้
การทดสอบภาคสนาม
การทดสอบภาคสนามช่วยให้คุณเข้าใจประสิทธิภาพของแอปกับผู้ใช้จริงภายใต้เงื่อนไขในชีวิตจริง ซึ่งเป็นพื้นที่สำคัญและช่วยให้เข้าใจ
ประสิทธิภาพของแอปในวงการนี้ คุณสามารถใช้เครื่องมือต่างๆ เช่น Google Play Vitals และFirebase Performance Monitoring เพื่อรับเมตริกภาคสนามจากผู้ใช้
คุณสามารถใช้ไลบรารีการติดตาม AndroidX เพื่อเพิ่มจุดติดตาม ซึ่งจะให้บริบทและข้อมูลเชิงลึกเพิ่มเติมแก่เมตริกในสนาม
นอกจากนี้ คุณยังใช้ ApplicationStartInfo
และ ApplicationExitInfo
เพื่อรับข้อมูลโดยละเอียดเกี่ยวกับการเริ่มต้นและออกจากแอปพลิเคชันของผู้ใช้ได้ด้วย
ไลบรารี AndroidX JankStats ช่วยรวบรวมและรายงานเฟรมที่ช้าและเฟรมที่หลุดไปเพื่อการวิเคราะห์เพิ่มเติม
การทดสอบในเครื่อง
เรามีไลบรารีการเปรียบเทียบเพื่อทดสอบประสิทธิภาพรันไทม์ของแอปในเครื่อง โดยแบ่งออกเป็นไลบรารี macrobenchmark ซึ่งสามารถใช้เพื่อทดสอบประสิทธิภาพของทั้ง FLow ของผู้ใช้ และไลบรารี microbenchmark ซึ่งใช้วิเคราะห์ประสิทธิภาพของ Hot Loop ของแอปพลิเคชันหรือไลบรารี
การทดสอบประสิทธิภาพทั้งหมดควรทําในอุปกรณ์จริง วิธีนี้เป็นเพียงวิธีเดียวที่จะตรวจสอบได้ว่าประสิทธิภาพที่คุณวัดคือประสิทธิภาพจริงที่เกิดขึ้นในอุปกรณ์ การทดสอบประสิทธิภาพรันไทม์จะให้ผลลัพธ์ที่แตกต่างกันไป ขึ้นอยู่กับอุปกรณ์ที่ใช้ทดสอบและระดับการใช้งานอุปกรณ์
ประสิทธิภาพของแอปพลิเคชันอาจถดถอย คุณควรทำการทดสอบประสิทธิภาพบ่อยๆ เพื่อหลีกเลี่ยงการถดถอย ในสถานการณ์ที่ดีที่สุด จะมีการเปรียบเทียบแอปทุกครั้งที่มีการเพิ่มฟีเจอร์ใหม่หรือโค้ดรวมเข้าไว้ใน Branch หลัก การตรวจสอบประสิทธิภาพขั้นต่ำเป็นเพียงการเปรียบเทียบตัวเลือกการเปิดตัว และยืนยันว่าเวลาที่ใช้ในการเริ่มต้นและกรอบเวลาของเฟรมจะไม่ถดถอยในเส้นทางหลักของผู้ใช้
เราขอแนะนําให้ทําการเปรียบเทียบเมื่อเป็นไปได้ เช่น ก่อนผสานฟีเจอร์ไปยังสาขาหลักหรือสําหรับบิลด์รายวัน
ใช้ผลลัพธ์ที่ได้
การทดสอบประสิทธิภาพเป็นกระบวนการที่ต้องทำอย่างต่อเนื่อง เราขอแนะนําให้คุณจัดเก็บผลการทดสอบประสิทธิภาพในลักษณะที่เปรียบเทียบได้เมื่อเวลาผ่านไป
คุณใช้ผลลัพธ์ของการทดสอบประสิทธิภาพได้หลายวิธี
- ปรับปรุงประสิทธิภาพ - ใช้ผลลัพธ์การวัดเพื่อจัดลำดับความสำคัญในการปรับปรุงประสิทธิภาพ
- หลีกเลี่ยงการถดถอย - ตรวจสอบว่าประสิทธิภาพของรุ่นใหม่ไม่ถดถอย
- การตรวจสอบการใช้งานจริง - ทำความเข้าใจว่ามีปัญหาที่คุณไม่เห็นระหว่างการพัฒนาหรือไม่
ดูข้อมูลเพิ่มเติมเกี่ยวกับการทดสอบประสิทธิภาพรันไทม์ของ Android ได้ที่คำแนะนำเกี่ยวกับประสิทธิภาพของแอป
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-07-27 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-07-27 UTC"],[],[],null,["# Performance tests\n\nApp runtime performance can be divided into local testing and field testing.\nKeep in mind that both of these areas provide different results and\nmetrics. As long as the results are in itself conclusive, that divergence is\nacceptable.\n\nField testing\n-------------\n\nField testing helps you to understand how an app performs with real users under\nreal world conditions. It is an important area and helps to understand how an\napp performs in the field. You can use tools such as [Google Play Vitals](/topic/performance/vitals) and\n[Firebase Performance Monitoring](https://firebase.google.com/docs/perf-mon) to get field metrics from\nusers.\n\nYou can use the [AndroidX Tracing](/jetpack/androidx/releases/tracing) library to add trace points which\nprovides more context and insights to field metrics.\n\nYou can also use [`ApplicationStartInfo`](/reference/android/app/ApplicationStartInfo) and [`ApplicationExitInfo`](/reference/android/app/ApplicationExitInfo) to\nget more detailed information on application start and exit from users.\n\nThe [AndroidX JankStats](/topic/performance/jankstats) library enables aggregating and reporting of slow\nand dropped frames for further analysis.\n\nLocal testing\n-------------\n\nTo locally test the runtime performance of an app we provide the benchmarking\nlibrary. It is divided into the [macrobenchmark](/topic/performance/benchmarking/macrobenchmark-overview) library, which can be used\nto test the performance of entire user flows and the [microbenchmark](/topic/performance/benchmarking/microbenchmark-overview)\nlibrary, which is used to analyze hot loop performance of an application or\nlibrary.\n\nAll performance tests should run on a physical device. This is the only way to\nensure that the performance you're measuring is the actual performance\noccurring on a device. Runtime performance tests will produce different results\ndepending on the device they run on and how busy the device is.\n\nApplication performance can regress. To avoid regressions it's important to run\nperformance tests frequently. In an ideal scenario an app is benchmarked every\ntime a new feature is added or code is merged into the main branch. The bare\nminimum of performance monitoring is to benchmark release candidates and verify\nthat startup time and frame timing does not regress for major user journeys.\nWe recommend you run benchmarks whenever possible, such as before merging a\nfeature to the main branch or for nightly builds.\n\nUse the results\n---------------\n\nPerformance testing is an ongoing process. We recommend that you store results\nof performance tests in a way that they can be compared over time.\n\nYou can use results of performance tests in several ways.\n\n- Performance improvement - Use measurement results to prioritize performance improvement\n- Regression avoidance - Ensure there are no performance regressions with new releases\n- Production monitoring - Understand whether there are issues you're not seeing during development\n\nTo learn more about Android runtime performance testing, see the\n[guide to app performance](/performance)."]]