Αποδοτικότερος τρόπος γραφής μιας function

Γενικά θέματα για τις γλώσσες προγραμματισμού που δεν καλύπτονται από τις άλλες περιοχές της κατηγορίας.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
Knorcedger
Script Master
Δημοσιεύσεις: 1226
Εγγραφή: 18 Μάιος 2004 04:29
Επικοινωνία:

Αποδοτικότερος τρόπος γραφής μιας function

Δημοσίευση από Knorcedger » 11 Απρ 2006 13:26

Καλημέρα.

Χρειάζομαι την συμβουλή σας για να φτιάξω ένα μικρό κομμάτι κώδικα όσο πιο αποδοτικα γίνεται.

Έχω μια function που μέσα έχει 2 έντολες. Η function πέρνει μια παράμετρο, που μπορει να είναι "first", "second", "both", δηλαδη να εκτελεστει η πρώτη εντολη μονο, η δευτερη μονο, ή και οι δυο.

Ποιός θα ήταν ο καλύτερος τρόπος για να γράψω αυτη την συνάρτηση ώστε να πετύχω το καλύτερο αποτελεσμα (μέγεθος κώδικα αλλά και χρόνο εκτέλεσης)

Ευχαριστω.

P.S. Να σημειώσω πώς πρόκειται για actionscript, αλλα εγώ μιλάω γενικά για όλες τις γλώσσες
Εικόνα
myUbuntu.gr[Ελληνικός οδηγός για Ubuntu]

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Αποδοτικότερος τρόπος γραφής μιας function

Δημοσίευση από dva_dev » 11 Απρ 2006 14:47

Πρέπει να είναι τα συγκεκριμένα λεκτικά οι παράμετροι και όχι αριθμοί;

Άβαταρ μέλους
Knorcedger
Script Master
Δημοσιεύσεις: 1226
Εγγραφή: 18 Μάιος 2004 04:29
Επικοινωνία:

Αποδοτικότερος τρόπος γραφής μιας function

Δημοσίευση από Knorcedger » 11 Απρ 2006 14:54

έβαλα λέξεις γιατι συνολικα ο κώδικας είναι λίγο μεγάλος και θέλω να υπάρχει μια τάξη. Αν θες πες μου πως θα γίνει με αριθμους :)
Εικόνα
myUbuntu.gr[Ελληνικός οδηγός για Ubuntu]

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Αποδοτικότερος τρόπος γραφής μιας function

Δημοσίευση από dva_dev » 11 Απρ 2006 15:51

Θα μπορούσες να εκμεταλευτείς bit-wise operators. Δεν έχω γνώσεις actionscript, οπότε θα σου εκφράσω τη σκέψη μου σε C.

Αν στη function περνάς παράμετρο :
1 (σε binary 01) για την πρώτη εντολή,
2 (σε binary 10) για την δεύτερη και
3 (σε binary 11) και για τις δύο,

μπορείς να απλουστεύσεις τους ελέγχους σε:

Κώδικας: Επιλογή όλων

void foo( int paramValue )
{
    if (paramValue & 1) εντολή_1;
    if (paramValue & 2) εντολή_2;
}

Άβαταρ μέλους
alkisg
Δημοσιεύσεις: 265
Εγγραφή: 03 Ιουν 2005 11:53
Τοποθεσία: Ιωάννινα
Επικοινωνία:

Αποδοτικότερος τρόπος γραφής μιας function

Δημοσίευση από alkisg » 12 Απρ 2006 00:27

Επίσης ένας τρόπος να γλυτώσεις τελείως τις if είναι να ορίσεις έναν πίνακα από pointers σε functions (jump table)... δεν ξέρω όμως αν αξίζει τον κόπο σε actionscript το να το παιδεύεις τόσο, το πολύ optimization γίνεται συνήθως μόνο σε επίπεδο λειτουργικού, device drivers, βιβλιοθήκες γραφικών κτλ...

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Αποδοτικότερος τρόπος γραφής μιας function

Δημοσίευση από skeftomilos » 12 Απρ 2006 01:41

Το έντικτό μου μου λέει πως είναι μάλλον απίθανο να υπάρχει εδώ το bottleneck που να χρειάζεται το optimization.

(Καθυστέρησα και με πρόλαβαν) :)
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Αποδοτικότερος τρόπος γραφής μιας function

Δημοσίευση από cpulse » 12 Απρ 2006 16:54

Optimization ε; Αχ αυτά τα optimizations μας έχουν φάει τα καλύτερά μας χρόνια...
Μακάρι το ActionScript να είχε inline functions .. είναι τόσο απλό το πρόβλημα που φαντάζομαι ότι μόνο κάτι τέτοιο θα έκανε διαφορά.

Ό,τι λύση κι αν σκεφτείς πάντως ένα είναι το αληθινό test… βάλτο σε ένα loop να τρέξει κανένα εκατομμύριο φορές κι εκεί θα φανεί ξεκάθαρα πόσο καλύτερη ή χειρότερη είναι η μια λύση έναντι των άλλων.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Αποδοτικότερος τρόπος γραφής μιας function

Δημοσίευση από cherouvim » 12 Απρ 2006 22:39

Compose Method:

method a
method b

method first{a()}
method second{b()}
method both{a();b()}


http://www.industriallogic.com/xp/refac ... ethod.html

Απάντηση

Επιστροφή στο “γλώσσες προγραμματισμού - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες