Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Geospatial Development By Example with Python

You're reading from   Geospatial Development By Example with Python Build your first interactive map and build location-aware applications using cutting-edge examples in Python

Arrow left icon
Product type Paperback
Published in Jan 2016
Publisher
ISBN-13 9781785282355
Length 340 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Pablo Carreira Pablo Carreira
Author Profile Icon Pablo Carreira
Pablo Carreira
Arrow right icon
View More author details
Toc

Table of Contents (12) Chapters Close

Preface 1. Preparing the Work Environment 2. The Geocaching App FREE CHAPTER 3. Combining Multiple Data Sources 4. Improving the App Search Capabilities 5. Making Maps 6. Working with Remote Sensing Images 7. Extract Information from Raster Data 8. Data Miner App 9. Processing Big Images 10. Parallel Processing Index

Code profiling


By trial, we found that the most expensive part of our code was the string formatting. When your code gets more complex, finding bottlenecks by this method gets harder and at some point becomes impractical.

The solution is to break and analyze small pieces of code. To see how long they take to execute, make a profile of the code.

Python comes with a good profiling tool that automates this process to a certain level. Let's use it on our code to see what it tells us:

  1. Add this import at the beginning of the file:

    from timeit import timeit
    import cProfile
    
  2. Edit your if __name__ == '__main__': block to use the profiler:

    if __name__ == '__main__':
        my_list = ['bacon', 'lasagna', 'salad', 'eggs', 'apples']
        number = 1000000    
        profile = cProfile.Profile()
        profile.enable()
        for i in range(number):
            make_list1(my_list)
        profile.disable()
        profile.print_stats(sort='cumulative')
  3. Run the code. You should see the profiler statistics on the console. (I suppressed...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image