Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: Program Profiling

Program Profiling 13 Χρόνια 2 Μήνες πριν #1295

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Κώδικας για το profiling συναρτήσεων. Χρήσιμο για τη σύγκριση των χρόνων εκτέλεσης εναλλακτικών προσεγγίσεων.

Στο συγκεκριμένο παράδειγμα γίνεται σύγκριση της ταχύτητας εκτέλεσης loops.

Ο κώδικας τρέχει τόσο για python 2 οσο και για 3.
#! /usr/bin/env python
# -*- coding: utf-8 -*-
 
import timeit
import sys
 
times = 1000
size = 10000
 
def for_statement():
    a = []
    for x in range(size):
        a.append(abs(x))
 
def list_comprehension():
    a = [abs(x) for x in range(size)]
 
def map_function():
    # map function has changed in Python 3
    # in python 2 it returns a list.
    # in python 3 it returns a generator.
    if sys.version_info.major == 2:
        a = map(abs, range(size))
    else:
        a = list(map(abs, range(size)))
 
def generator_expression():
    a = list(abs(x) for x in range(size))
 
functions = (for_statement, list_comprehension, map_function, generator_expression)
 
print(sys.version)
print(30 * "-")
for function in functions:
    t = timeit.Timer("{0}()".format(function.__name__), "from __main__ import {0}".format(function.__name__))
    print("{0:30} => {1}".format(function.__name__, t.timeit(times)))
print(30 * "-")
 
#import cProfile
#for function in functions:
#    cProfile.run(str(function.__name__) + "()")
Τελευταία διόρθωση: 13 Χρόνια 2 Μήνες πριν από pmav99.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": kamar
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.490 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου