Πριν περάσω στο θέμα, λίγα λόγια για το Profiling. Πόσες φορές στο παρελθόν (ίσως και παλιά στα χρόνια της VB 6) δεν βάλατε ένα timer στην αρχή και στο τέλος μιας συνάρτησης για να μετρήσετε πόσο χρόνο κράτησε η κλήση της; Αυτό ακριβώς πετυχαίνετε με το Profiling, χωρίς όμως να γράψετε ούτε μια γραμμή κώδικα! Ναι! Και το αποτέλεσμα είναι εντυπωσιακό! Έχετε χρόνους κλήσης για κάθε μια μέθοδο του κώδικά σας ξεχωριστά!
Υπάρχουν δυο βασικές κατηγορίες Profiling. Το Performance και το Memory Profiling. Με το πρώτο μετράμε χρόνους κλήσεων και με το δεύτερο την κατανάλωση μνήμης.
EQATEC Profiler
Ο EQATEC Profiler είναι ένα δωρεάν εργαλείο με το οποίο μπορείτε να κάνετε Performance Profiling. Το εργαλείο λειτουργεί δίνοντας του αρχικά το deployment folder της εφαρμογής σας. Επιλέγετε ποια dll θέλετε να "μετρήσετε" και το εργαλείο παράγει ένα δεύτερο deployment folder που το ονομάζει Profiled. Χρησιμοποιήστε τα αρχεία αυτά αντί για τα κανονικά και αυτό είναι όλο. Στο κλείσιμο της εφαρμογής σας θα δημιουργηθεί ένα xml report με το αποτέλεσμα του profiling. Ανοίξτε αυτό το report με τον ειδικό viewer που συνοδεύει τον EQATEC Profiler για να δείτε τα αποτελέσματα (βλ. εικόνα). Γράφοντας μάλιστα και λίγο προαιρετικό κώδικα μπορείτε να παίρνεται reports και όσο η εφαρμογή σας τρέχει, πατώντας για παράδειγμα ένα πλήκτρο της.
Το εκπληκτικό είναι ότι με αυτό τον profiler μπορείτε να μετρήσετε compact και desktop εφαρμογές ή ακόμα και web applications και windows services. Και μάλιστα μπορείτε να το κάνετε ακόμα και στο περιβάλλον του χρήστη χωρίς να χρειάζεται να εγκαταστήσετε εκεί κάποιο ειδικό εργαλείο. Αρκεί να στείλετε στο χρήστη να εγκαταστήσει την ειδική 'Profiled' έκδοση που παράγει ο EQATEC Profiler. Ο χρήστης θα χρησιμοποιήσει την εφαρμογή σας κανονικά, στην mobile συσκευή του ή στο desktop του και θα σας στείλει πίσω το xml report που θα δημιουργηθεί!
Παρενέργειες και απόδοση
Οι παρενέργειες που προκαλεί αυτό ο Profiler είναι ότι αυξάνει το μέγεθος της εφαρμογής σας περίπου 20% και μειώνει την απόδοσή της κατά περίπου 30%. Νούμερα αρκετά ικανοποιητικά για το αποτέλεσμα που έχει κανείς. Η EQATEC ισχυρίζεται ότι έχει κάνει Profiling στην εφαρμογή World Wind της Nasa, μια που το εργαλείο αυτό μπορεί αν χρησιμοποιηθεί και για εφαρμογές για τις οποίες δεν έχετε τον κώδικα!
Συν και πλην
Εντάξει, δωρεάν εργαλείο είναι, κάτι θα του λείπει! Ο EQATEC Profiler μετράει τους χρόνους κλήσεων των δικών σας συναρτήσεων και όχι των System.*. Που σημαίνει ότι δεν μπορείτε να έχετε αναλυτικά χρόνους εκτέλεσεις της κάθε γραμμής κώδικα ξεχωριστά. Μόνο τους χρόνους των μεθόδων σας. Για αναλυτικότερο profiling θα πρέπει να χρησιμοποιήσετε ένα εργαλείο όπως το εκπληκτικό dotTrace της JetBrains (δημιουργός του επίσης εκπληκτικού ReSharper). Αυτό όμως ούτε δωρεάν είναι ούτε παράγει Profiled εκδόσεις της εφαρμογής σας. Που σημαίνει ότι πρέπει να είναι εγκατεστημένο στον υπολογιστή που θα γίνει το Profiling και μάλιστα η εφαρμογή να ξεκινήσει από το περιβάλλον του. Και φυσικά δεν μπορεί να χρησιμοποιηθεί για mobile εφαρμογές καθώς βέβαια δεν μπορεί να εγκατασταθεί σε Windows Mobile. Εκεί είναι που έρχεται ο EQATEC Profiler και μας λύνει τα χέρια!
Comments [0]