2.7.2 Dynamic Memory UseDynamic memory use is another valuable test pr dịch - 2.7.2 Dynamic Memory UseDynamic memory use is another valuable test pr Việt làm thế nào để nói

2.7.2 Dynamic Memory UseDynamic mem

2.7.2 Dynamic Memory Use
Dynamic memory use is another valuable test provided by many of the commercial tools. As with coverage, it’s possible to instrument the dynamic memory allocation operators malloc() and free() in C and new and delete in C++ so that the instrumentation tags will help uncover memory leakages and fragmentation problems while they are occurring. This is infinitely preferable to dealing with a nonreproducible system lock-up once every two or three weeks. Figure 2-2 shows one such memory management test tool.
From the Trenches
Performance testing and coverage testing are not entirely separate activities. Coverage testing not only uncovers the amount of code your test is exercising, it also shows you code that is never exercised (dead code) that could easily be eliminated from the product. I’m aware of one situation in which several design teams adapted a linker command file that had originally been written for an earlier product. The command file worked well enough, so no one bothered to remove some of the extraneous libraries that it pulled in. It wasn’t a problem until they had to add more functionality to the product but were limited to the amount of ROM space they had. Thus, you can see how coverage testing can provide you with clues about where you can excise code that does not appear to be participating in the program. Although removing dead code probably won’t affect the execution time of the code, it certainly will make the code image smaller. I say probably because on some architectures, the dead code can force the compiler to generate more time-consuming long jumps and branches. Moreover, larger code images and more frequent jumps can certainly affect cache performance.
Conceptually, performance testing is straightforward. You use the link map file to
identify the memory addresses of the entry points and exit points of functions. You then watch the address bus and record the time whenever you have address matches at these points. Finally, you match the entry points with the exit points, calculate the time difference between them, and that’s your elapsed time in the function. However, suppose your function calls other functions, which call more functions. What is the elapsed time for the function you are trying to measure? Also, if interrupts come in when you are in a function, how do you factor that information into your equation? Fortunately, the commercial tool developers have built in the capability to unravel even the gnarliest of recursive functions.
Hardware-based tools provide an attractive way to measure software performance. As with coverage measurements, the logic analyzer can be programmed to capture traces at random intervals, and the trace data—including time stamps—can be post-processed to yield the elapsed time between a function’s entry and exit points. Again, the caveat of intermittent measurements applies, so the tests might have to run for an extended period to gather meaningful statistics.
Hardware-only tools are designed to monitor simultaneously a spectrum of function entry points and exit points and then collect time interval data as various functions are entered and exited. In any case, tools such as these provide unambiguous information about the current state of your software as it executes in real time.
Hardware-assisted performance analysis, like other forms of hardware-assisted
measurements based on observing the processor’s bus activity, can be rendered less accurate by on-chip address and data caches. This occurs because the appearance of an address on the bus does not necessarily mean that the instruction at that address will be executed at that point in time, or any other point in time. It only means that the address was transferred from memory to the instruction cache.
Tools based on the instrumentation of code are immune to cache-induced errors but do introduce some level of intrusion because of the need to add extra code to produce an observable tag at the function’s entry points and exit points. Tags can be emitted sequentially in time from functions, ISRs, and the RTOS kernel itself. With proper measurement software, designers can get a real picture of how their system software is behaving under various system-loading conditions. This is exactly the type of information needed to understand why, for example, a functional test might be failing.
From the Trenches
From personal experience, the information that these tools provide a design team, can cause much disbelief among the engineers. During one customer evaluation, the tool being tested showed that a significant amount of time was being spent in a segment of code that none of the engineers on the project could identify as their software. Upon further investigation, the team realized that in the build process the team had inadvertently left the compiler switch on that included all the debug information in the compiled code. Again, this was released code. The tool was able to show that they were taking a 15-percent performance hit due to the debug code being present in the released software. I’m relatively certain that some heads were put on the block because of this, but I wasn’t around to watch the festivities.
Interestingly, semiconductor manufacturers are beginning to place additional resources on-chip for performance monitoring, as well as debugging purposes. Desktop processors, such as the Pentium and AMD’s K series, are equipped with performance-monitoring counters; such architectural features are finding their way into embedded devices as well. These on-chip counters can count elapsed time or other performance parameters, such as the number of cache hits and cache misses.
Another advantage of on-chip performance resources is that they can be used in
conjunction with your debugging tools to generate interrupts when error conditions
occur. For example, suppose you set one of the counters to count down to zero when a certain address is fetched. This could be the start of a function. The counter counts down; if it underflows before it’s stopped, it generates an interrupt or exception, and processing could stop because the function took too much time. The obvious advantages of on-chip resources are that they won’t be fooled by the presence of on-chip caches and that they don’t add any overhead to the code execution time. The downside is that you are limited in what you can measure by the functionality of the on-chip resources
5000/5000
Từ: Anh
Sang: Việt
Kết quả (Việt) 1: [Sao chép]
Sao chép!
2.7.2 sử dụng bộ nhớ năng độngSử dụng bộ nhớ năng động là một thử nghiệm có giá trị được cung cấp bởi nhiều người trong số các công cụ thương mại. Như với phạm vi bảo hiểm, có thể để dụng cụ bộ nhớ năng động phân bổ nước sử dụng malloc() và free() thuộc C và mới và xóa trong C++ khoá thiết bị sẽ giúp phát hiện ra bộ nhớ dò và các vấn đề phân mảnh trong khi họ đang xảy ra. Điều này là vô cùng thích hợp hơn để đối phó với một nonreproducible hệ thống khóa-up một lần mỗi hai hoặc ba tuần. Hình 2-2 cho thấy một bộ nhớ quản lý kiểm tra công cụ như vậy.Từ các chiến hàoHiệu suất thử nghiệm và phạm vi bảo hiểm thử nghiệm là không hoạt động hoàn toàn tách biệt. Phạm vi bảo hiểm thử nghiệm không chỉ phát hiện ra số lượng mã thử nghiệm của bạn tập thể dục, nó cũng cho thấy bạn mã đó là không bao giờ thực hiện (chết mã) mà có thể dễ dàng được loại bỏ từ sản phẩm. Tôi là nhận thức của một tình hình trong đó thiết kế một số đội chuyển thể một tập tin lệnh linker ban đầu đã được viết cho một sản phẩm trước đó. Tập lệnh làm việc cũng đủ, do đó, không ai bực để loại bỏ một số các thư viện không liên quan đó mà nó lấy. Nó không phải là một vấn đề cho đến khi họ đã phải thêm chức năng thêm vào sản phẩm nhưng bị giới hạn số lượng ROM không gian họ đã có. Vì vậy, bạn có thể xem làm thế nào phạm vi bảo hiểm thử nghiệm có thể cung cấp cho bạn các manh mối về nơi bạn có thể thuế mã mà không xuất hiện để tham gia vào chương trình. Mặc dù loại bỏ mã chết có lẽ sẽ không ảnh hưởng đến thời gian thực hiện của mã, nó chắc chắn sẽ làm cho hình ảnh mã nhỏ hơn. Tôi nói có lẽ bởi vì trên một số kiến trúc, mã chết có thể ép buộc trình biên dịch để tạo thêm các tốn thời gian dài nhảy và các chi nhánh. Hơn nữa, hình ảnh mã lớn hơn và thường xuyên hơn nhảy có thể chắc chắn ảnh hưởng đến hiệu suất của bộ nhớ cache.Khái niệm, hiệu suất thử nghiệm là đơn giản. Bạn sử dụng các tập tin bản đồ liên kếtxác định địa chỉ bộ nhớ của các điểm và thoát khỏi điểm của chức năng. Sau đó, bạn xem xe buýt địa chỉ và ghi lại thời gian bất cứ khi nào bạn có địa chỉ các trận đấu tại các điểm khác nhau. Cuối cùng, bạn kết hợp các mục nhập điểm với các điểm xuất cảnh, tính toán thời gian khác nhau giữa chúng, và đó là thời gian của bạn trong các chức năng. Tuy nhiên, cho rằng cuộc gọi chức năng chức năng khác, hãy gọi chức năng hơn. Thời gian cho các chức năng mà bạn đang cố gắng để đo lường là gì? Ngoài ra, nếu ngắt đi khi bạn đang ở trong một chức năng, làm thế nào làm bạn yếu tố thông tin đó vào phương trình của bạn? May mắn thay, các nhà phát triển thương mại công cụ đã xây dựng trong khả năng để làm sáng tỏ thậm chí gnarliest đệ quy chức năng.Phần cứng dựa trên công cụ cung cấp một cách hấp dẫn để đo lường hiệu suất phần mềm. Như với phạm vi bảo hiểm đo, phân tích logic có thể được lập trình để nắm bắt dấu vết ngẫu nhiên khoảng thời gian, và các dữ liệu theo dõi-bao gồm cả thời gian tem — có thể được Post-chế biến để mang lại thời gian giữa một chức năng nhập cảnh và xuất cảnh điểm. Một lần nữa, caveat đầm đo áp dụng, do đó, các bài kiểm tra có thể phải chạy trong một thời gian dài để thu thập số liệu thống kê có ý nghĩa.Chỉ có phần cứng công cụ được thiết kế để theo dõi đồng thời một quang phổ của chức năng điểm và thoát khỏi điểm và sau đó thu thập dữ liệu thời gian khoảng thời gian như chức năng khác nhau được nhập và đã thoát. Trong bất kỳ trường hợp nào, công cụ như những cung cấp các thông tin rõ ràng về tình trạng hiện tại của phần mềm của bạn như nó thực hiện trong thời gian thực.Hỗ trợ phần cứng hiệu suất phân tích, như các hình thức khác của phần cứng hỗ trợđo lường dựa trên quan sát các bộ xử lý xe buýt hoạt động, có thể được trả lại ít chính xác hơn bằng cách lưu trữ địa chỉ và dữ liệu trên chip. Điều này xảy ra bởi vì sự xuất hiện của một địa chỉ trên xe buýt không nhất thiết có nghĩa rằng các hướng dẫn tại địa chỉ đó sẽ được thực hiện vào thời điểm đó trong thời gian, hoặc bất kỳ điểm nào khác trong thời gian. Nó chỉ có nghĩa rằng địa chỉ được chuyển từ bộ nhớ cache chỉ dẫn.Công cụ dựa trên thiết bị đo đạc của mã được miễn dịch với bộ nhớ cache gây ra lỗi nhưng giới thiệu một số mức độ của sự xâm nhập vì sự cần thiết phải thêm phụ mã để sản xuất một thẻ quan sát tại các chức năng điểm và thoát khỏi điểm. Thẻ có thể được phát ra tuần tự trong thời gian từ chức năng, ISRs, và RTOS hạt nhân chính nó. Với phần mềm thích hợp đo lường, nhà thiết kế có thể có được một hình ảnh thực sự của làm thế nào phần mềm hệ thống của họ là có hành vi dưới điều kiện hệ thống-tải khác nhau. Điều này là chính xác loại thông tin cần thiết để hiểu tại sao, ví dụ, một bài kiểm tra chức năng có thể không.Từ các chiến hàoTừ kinh nghiệm cá nhân, thông tin rằng những công cụ này cung cấp một đội ngũ thiết kế, có thể gây ra nhiều sự hoài nghi trong số các kỹ sư. Trong đánh giá một khách hàng, công cụ đang được thử nghiệm cho thấy rằng một số lượng đáng kể thời gian đã được chi tiêu trong một phân đoạn mã mà không có các kỹ sư về dự án có thể xác định như là phần mềm của họ. Sau khi tiếp tục điều tra, các đội nhận ra rằng trong quá trình xây dựng đội bóng đã vô tình để lại chuyển biên dịch trên đó bao gồm tất cả các thông tin gỡ lỗi trong mã biên dịch. Một lần nữa, điều này đã được phát hành mã. Công cụ đã có thể cho rằng họ đã tham gia một hiệu suất 15 phần trăm đạt do gỡ lỗi mã được hiện diện trong phần mềm phát hành. Tôi khá chắc chắn rằng một số người đứng đầu được đặt trên các khối bởi vì điều này, nhưng tôi đã không là xung quanh để xem các lễ hội.Điều thú vị, nhà sản xuất bán dẫn đang bắt đầu để đặt tài nguyên khác trên-chip cho hiệu suất giám sát, cũng như mục đích gỡ lỗi. Bộ vi xử lý máy tính để bàn, chẳng hạn như Pentium và AMD K loạt, được trang bị giám sát hiệu suất quầy; Các tính năng kiến trúc đang tìm cách của họ vào thiết bị nhúng. Các quầy trên chip có thể đếm thời gian hoặc các thông số hiệu suất, chẳng hạn như số lượt truy cập bộ nhớ cache và bộ nhớ cache bỏ lỡ.Một ưu điểm khác của tài nguyên hiệu suất trên chip là họ có thể được sử dụng trongkết hợp với các công cụ gỡ lỗi để tạo ra ngắt khi điều kiện lỗixảy ra. Ví dụ, giả sử bạn đặt một trong đồng hồ đếm đến 0 khi một địa chỉ nhất định được lấy. Điều này có thể là khởi đầu của một hàm. Số lượt truy cập đếm xuống; Nếu nó underflows trước khi nó được dừng lại, nó tạo ra một ngắt hoặc ngoại lệ, và xử lý có thể dừng bởi vì chức năng mất quá nhiều thời gian. Những lợi thế rõ ràng của tài nguyên trên chip là rằng họ sẽ không được mê hoặc bởi sự hiện diện của lưu trữ trên chip và rằng họ không thêm bất kỳ chi phí cho thời gian thực hiện mã. Nhược điểm là bạn được giới hạn trong những gì bạn có thể đo lường bởi các chức năng của các nguồn tài nguyên trên chip
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
2.7.2 Năng động Sử dụng bộ nhớ
sử dụng bộ nhớ động là một xét nghiệm có giá trị được cung cấp bởi rất nhiều các công cụ thương mại. Như với phạm vi bảo hiểm, nó có thể để cụ bộ nhớ động khai thác phân bổ malloc () và free () trong C và mới và xóa trong C ++ để các thẻ thiết sẽ giúp phát hiện rò rỉ bộ nhớ và vấn đề phân mảnh trong khi chúng đang xảy ra. Điều này là vô cùng thích hợp hơn để đối phó với một hệ thống nonreproducible lock-up mỗi hai hoặc ba tuần một lần. Hình 2-2 cho thấy một công cụ kiểm tra quản lý bộ nhớ như vậy.
Từ Trenches
Hiệu suất thử nghiệm và kiểm tra vùng phủ sóng không hoạt động hoàn toàn riêng biệt. Kiểm tra vùng phủ sóng không chỉ phát hiện ra số lượng mã thử nghiệm của bạn được thực hiện, nó cũng cho phép bạn mã mà không bao giờ được thực hiện (mã chết) mà có thể dễ dàng được loại bỏ khỏi sản phẩm. Tôi nhận thức được một tình huống trong đó một số đội thiết kế đã sửa lại một tập tin lệnh mối liên kết mà ban đầu được viết cho một sản phẩm trước đó. Các tập lệnh làm việc đủ tốt, để không ai làm phiền để loại bỏ một số các thư viện không liên quan mà nó kéo vào. Nó không phải là một vấn đề cho đến khi họ đã có thêm nhiều chức năng hơn cho các sản phẩm nhưng bị giới hạn dung lượng ROM họ có . Như vậy, bạn có thể nhìn thấy thế nào kiểm tra vùng phủ sóng có thể cung cấp cho bạn những manh mối về nơi bạn có thể cắt bỏ mã mà không xuất hiện để được tham gia chương trình. Mặc dù loại bỏ mã chết có thể sẽ không ảnh hưởng đến thời gian thực hiện của mã này, nó chắc chắn sẽ làm cho hình ảnh mã nhỏ hơn. Tôi nói có lẽ là bởi vì trên một số kiến trúc, các mã chết có thể buộc các trình biên dịch để tạo ra nhiều bước nhảy, ngành dài thời gian. Hơn nữa, hình ảnh mã lớn hơn và nhảy thường xuyên hơn chắc chắn có thể ảnh hưởng đến hiệu suất bộ nhớ cache.
Khái niệm, thử nghiệm hiệu suất là đơn giản. Bạn sử dụng các tập tin bản đồ liên kết để
xác định địa chỉ bộ nhớ của các điểm vào và điểm ra của chức năng. Sau đó, bạn xem các bus địa chỉ và ghi lại thời gian bất cứ khi nào bạn có trận địa ở những điểm này. Cuối cùng, bạn kết hợp những điểm bắt đầu với điểm xuất cảnh, tính toán sự khác biệt giữa chúng, và đó là thời gian trôi qua trong các chức năng. Tuy nhiên, giả sử hàm của bạn gọi chức năng khác, trong đó kêu gọi nhiều chức năng hơn. Thời gian trôi qua cho các chức năng bạn đang cố gắng để đo lường là gì? Ngoài ra, nếu ngắt đến trong khi bạn đang ở trong một chức năng, làm thế nào để bạn yếu tố thông tin đó vào phương trình của bạn? May mắn thay, các nhà phát triển công cụ thương mại đã xây dựng trong khả năng để làm sáng tỏ ngay cả những gnarliest của hàm đệ qui.
công cụ phần cứng dựa trên cung cấp một cách hấp dẫn để đo hiệu suất phần mềm. Như với các phép đo vùng phủ sóng, máy phân tích logic có thể được lập trình để nắm bắt các dấu vết trong khoảng thời gian ngẫu nhiên, và các dấu vết dữ liệu bao gồm cả thời gian tem-có thể là hậu xử lý để mang lại thời gian trôi qua giữa điểm ra vào của một chức năng. Một lần nữa, sự báo trước của các phép đo liên tục áp dụng, do đó, các bài kiểm tra có thể phải chạy một thời gian dài để thu thập số liệu thống kê có ý nghĩa.
các công cụ phần cứng được thiết kế chỉ để giám sát đồng thời là một quang phổ của các điểm chức năng nhập cảnh và điểm thoát và sau đó thu thập dữ liệu khoảng thời gian như chức năng khác nhau được nhập vào và đi ra. Trong mọi trường hợp, các công cụ như những cung cấp thông tin rõ ràng về tình trạng hiện tại của phần mềm của bạn như nó thực hiện trong thời gian thực.
phân tích hiệu suất Phần cứng hỗ trợ, như các hình thức khác của phần cứng hỗ trợ
các phép đo dựa trên quan sát hoạt động xe buýt của bộ xử lý, có thể được trả lại kém chính xác địa chỉ trên chip và bộ nhớ cache dữ liệu. Điều này xảy ra bởi vì sự xuất hiện của một địa chỉ trên xe buýt không nhất thiết có nghĩa rằng các hướng dẫn tại địa chỉ đó sẽ được thực hiện tại thời điểm đó, hoặc bất kỳ điểm nào khác trong thời gian. Nó chỉ có nghĩa là địa chỉ được chuyển từ bộ nhớ cache để được hướng dẫn.
Công cụ dựa trên các thiết bị của mã là miễn dịch với các lỗi bộ nhớ cache gây ra nhưng làm giới thiệu một số mức độ xâm nhập vì sự cần thiết phải thêm mã thêm để sản xuất một thẻ quan sát tại điểm vào của chức năng và các điểm xuất cảnh. Tags có thể được phát ra liên tục trong thời gian từ chức năng, ISRs, và hạt nhân RTOS chính nó. Với phần mềm đo lường thích hợp, các nhà thiết kế có thể có được một hình ảnh thực sự của phần mềm hệ thống của họ như thế nào là hành xử trong điều kiện hệ thống tải khác nhau. Đây chính là loại thông tin cần thiết để hiểu được lý do tại sao, ví dụ, một thử nghiệm chức năng có thể bị thất bại.
Từ Trenches
Từ kinh nghiệm cá nhân, những thông tin mà các công cụ này cung cấp một đội ngũ thiết kế, có thể gây ra nhiều sự hoài nghi giữa các kỹ sư. Trong một đánh giá của khách hàng, các công cụ đang được thử nghiệm cho thấy một số lượng đáng kể thời gian đã được chi tiêu trong một đoạn mã mà không ai trong số các kỹ sư của dự án có thể xác định như phần mềm của họ. Sau khi điều tra thêm, nhóm nghiên cứu nhận ra rằng trong quá trình xây dựng đội bóng đã vô tình để lại những chuyển đổi trình biên dịch trên bao gồm tất cả các thông tin gỡ lỗi trong mã biên dịch. Một lần nữa, điều này đã được phát hành mã. Công cụ này có thể cho thấy rằng họ đã dùng 15 phần trăm hiệu suất hit do các mã lỗi được hiện diện trong các phần mềm được phát hành. Tôi khá chắc chắn rằng một số người đứng đầu đã được đưa vào các khối vì điều này, nhưng tôi đã không có mặt để xem các lễ hội.
Điều thú vị là, các nhà sản xuất bán dẫn đang bắt đầu đặt thêm các nguồn tài nguyên trên chip để theo dõi hiệu suất, cũng như mục đích gỡ lỗi . Bộ vi xử lý máy tính để bàn, chẳng hạn như Pentium và AMD của K, được trang bị bộ đếm hiệu suất giám sát; đặc điểm kiến trúc như đang tìm đường vào các thiết bị nhúng là tốt. Các bộ đếm trên chip có thể đếm thời gian trôi qua hoặc thông số hiệu năng khác, chẳng hạn như số lượng truy cập bộ nhớ cache và cache nhớ.
Một ưu điểm khác của tài năng trên chip là chúng có thể được sử dụng trong
kết hợp với các công cụ gỡ lỗi của bạn để tạo ra ngắt khi lỗi điều kiện
xảy ra. Ví dụ, giả sử bạn thiết lập một trong các quầy để đếm xuống không khi một địa chỉ nhất định là cường điệu. Điều này có thể là sự khởi đầu của một hàm. Bộ đếm đếm ngược; nếu nó underflows trước khi nó dừng lại, nó tạo ra một ngắt hoặc ngoại lệ, và chế biến có thể dừng lại bởi vì chức năng mất quá nhiều thời gian. Các lợi thế rõ ràng của các nguồn tài nguyên trên chip được rằng họ sẽ không bị lừa bởi sự hiện diện của cache trên chip và rằng họ không thêm bất kỳ chi phí với thời gian thực thi mã. Nhược điểm là bạn được giới hạn trong những gì bạn có thể đo bằng các chức năng của các nguồn tài nguyên trên chip
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2025 I Love Translation. All reserved.

E-mail: ilovetranslation@live.com