Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Είμαι πιο εξοικειωμένος με την C/C++ όσον αφορά αλγορίθμους που δεν έχουν να κάνουν με γραφικά και τέτοια, αυτήν την περίοδο δουλεύω στο να φτιάξω ένα πρόγραμμα για τον αλγόριθμο Simplex και το κάνω σε .ΝΕΤ επειδή με ενδιαφέρει το UI.

 

Η αλήθεια είναι ότι τον αλγόριθμο για την επίλυση του Simplex τον βγάζω πιο χαλαρά σε C/C++ σε σχέση με C#.

 

Τι θα λέγατε να έγραφα τον κώδικα σε C/C++ και να έκανε μόνο το UI σε .NET; δεν είναι λίγο χαζό; επίσης πιστεύετε ότι θα κερδίσω σε ταχύτητα; (αν και στο συγκεκριμένο πρόβλημα δεν μας αφορά τόσο, είτε με c/c++ είτε με java η επίλυση είναι 'στιγμιαία')

 

 

Δημοσ.

Βασικά αυτό για την ταχύτητα το ανέφερα 'έτσι' , δεν είναι αυτός ο λόγος που έκανα το Post, ο λόγος είναι η ευκολία στο να λύσω ένα πρόβλημα σε C/C++ γιατί μου παρέχει διαχείριση μνήμης και μερικές φορές το ζητώ αυτό...

Δημοσ.

Στην simplex, ανάλογα με το μεγεθος των προβλημάτων που θες να λύσεις, παίζει μεγάλο ρόλο η ταχύτητα.

 

H simplex αυτή καθε αυτή δεν έχει να κάνει με διαχείριση μνήμης. Ένας αλγόριθμο είναι. Αν γράψεις σε C/C++, xρησιμοποιώντας pointers κτλ πιθανότατα θα πετύχεις καλύτερο runtime efficiency. Με μια πιο high level γλώσσα (την οποία την ξέρεις εξίσου καλά) θα δαπανήσεις πιθανότατα λιγότερο development time.

 

Εκτός και αν το κάνεις για διδακτικούς σκοπούς μου φαίνεται απίθανο να μην βρεις έτοιμο κωδικα για simplex

Δημοσ.

Με μια ματια που εριξα στον αλγοριθμο... Με c++ θα κανεις παπαδες βαζοντας opt ss2 ή γραφοντας το με ss2. Βαιβεα μπορεις να το γραψεις και σε πιο high level γλωσσα, καποια shader ξερω γω που εκει θα ειναι καμια 100 φορες πιο γρηγορη η επιλυση.

Δημοσ.

Αλλού πήγαινε το 'διαχείριση μνήμης'.

 

ΥΓ-Οφφτοπικ: η υλοποίηση με C/C++ σίγουρα θα βοηθούσε σημαντικά στην ταχύτητα (όπως είπα όμως, δεν με ενδιαφέρει), φανταστείτε ότι στην C# μεταφέρω ολόκληρο πίνακα σε κάποια συνάρτηση για να κάνει μια δουλειά... αυτό δεν είναι ότι καλύτερο αλλά δεν μπορώ να τα έχω όλα χύμα-global.

 

Με δείκτες θα γλίτωνα την μεταφορά ολόκληρων κομματιών μνήμης.

 

Το θέμα είναι ότι χειρίζομαι καλύτερα πίνακες σε C/C++ και ο αλγόριθμος Simplex ουσιαστικά είναι μια εργασία που γίνεται σε έναν μεγάλο πίνακα (=A + b + c).

 

Anyway, σε .NET το κάνω, απλά θέλω να μάθω: πως ξέρω πότε πρέπει να γράψω κάτι πιο χαμηλά από .ΝΕΤ και να το κάνω Import στην .ΝΕΤ (σαν dll);;;

Δημοσ.

 φανταστείτε ότι στην C# μεταφέρω ολόκληρο πίνακα σε κάποια συνάρτηση για να κάνει μια δουλειά... 

Αυτο ειναι λαθος.

By reference περνανε οι πινακες.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...