Ασύγχρονη είσοδος/έξοδος δίσκου εμφανίζεται ως σύγχρονη στα Windows NT, Windows 2000 και Windows XP

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 156932 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αρχείο εισόδου/εξόδου σε Microsoft Windows NT, Windows 2000 και Windows XP μπορεί να είναι σύγχρονη ή ασύγχρονη. Η προεπιλεγμένη συμπεριφορά για εισόδου/εξόδου είναι σύγχρονη: μια λειτουργία εισόδου/εξόδου ονομάζεται και επιστρέφει όταν ολοκληρωθεί η είσοδος/έξοδος. Ασύγχρονων I/O, από την άλλη πλευρά, επιτρέπει μια λειτουργία εισόδου/εξόδου για να επιστρέψετε εκτέλεση ο καλών αμέσως, αλλά η είσοδος/έξοδος δεν θεωρείται ολοκληρωμένη μέχρι κάποιο μελλοντικό χρόνο. Το λειτουργικό σύστημα ειδοποιεί τον καλούντα, όταν ολοκληρωθεί η είσοδος/έξοδος. Εναλλακτικά, ο καλών να προσδιορίσετε την κατάσταση της την εκκρεμή λειτουργία εισόδου/εξόδου, χρησιμοποιώντας τις υπηρεσίες του λειτουργικού συστήματος.

Το πλεονέκτημα των Ασύγχρονων I/O είναι ότι ο καλών έχει χρόνο για να κάνουν τους λειτουργεί ή να εκδίδουν περισσότερες αιτήσεις, ενώ η λειτουργία I/O ολοκληρώθηκε. Το όρος επικαλυπτόμενης εισόδου/εξόδου χρησιμοποιείται συχνά για ασύγχρονων I/O και μη επικαλυπτόμενη Εισόδου/εξόδου για σύγχρονη εισόδου/εξόδου. Αυτό το άρθρο χρησιμοποιεί τους όρους ασύγχρονη και Σύγχρονη για λειτουργίες εισόδου/εξόδου στα Windows NT. Αυτό το άρθρο προϋποθέτει την πρόγραμμα ανάγνωσης έχει ορισμένες εξοικείωση με τις λειτουργίες εισόδου/εξόδου αρχείου, όπως η διασύνδεση CreateFile, Τη συνάρτηση ReadFile, WriteFile.

Συχνά, ασύγχρονες λειτουργίες εισόδου/εξόδου συμπεριφέρονται όπως σύγχρονη I/O. ορισμένες συνθήκες που αναφέρεται στις ενότητες αργότερα σε αυτό το άρθρο είναι η είσοδος/έξοδος λειτουργίες ολοκληρωθεί συγχρονικά. Ο καλών δεν έχει καμία ώρα για το φόντο λειτουργεί, επειδή δεν επιστρέφουν τις λειτουργίες εισόδου/εξόδου μέχρι να ολοκληρωθεί η είσοδος/έξοδος.

Πολλές λειτουργίες σχετίζονται με σύγχρονες και ασύγχρονες εισόδου/εξόδου. Το άρθρο αυτό χρησιμοποιεί τη συνάρτηση ReadFile και WriteFile ως παραδείγματα; εναλλακτικές καλό θα ήταν ReadFileEx και WriteFileEx. Αν και αυτό το άρθρο περιγράφει συγκεκριμένα μόνο δίσκο εισόδου/εξόδου, πολλές από τις αρχές μπορούν να εφαρμοστούν σε άλλους τύπους της εισόδου/εξόδου, όπως σειριακή εισόδου/εξόδου ή εισόδου/εξόδου δικτύου.

ΣΗΜΕΊΩΣΗ: επειδή τα Windows 95 δεν υποστηρίζουν ασύγχρονων I/O σε συσκευές δίσκου (αν και αυτό γίνεται σε άλλους τύπους συσκευών εισόδου/εξόδου), η συμπεριφορά δεν καλύπτεται σε αυτό το άρθρο.

Περισσότερες πληροφορίες

Ορίσετε ασύγχρονων I/O

Η σημαία FILE_FLAG_OVERLAPPED πρέπει να καθοριστεί σε CreateFile κατά το άνοιγμα του αρχείου. Αυτή η σημαία επιτρέπει λειτουργίες εισόδου/εξόδου στο αρχείο που θα εκτελεστεί ασύγχρονα. Ακολουθεί ένα παράδειγμα:
   HANDLE hFile;

   hFile = CreateFile(szFileName,
                      GENERIC_READ,
                      0,
                      NULL,
                      OPEN_EXISTING,
                      FILE_FLAG_NORMAL | FILE_FLAG_OVERLAPPED,
                      NULL);

   if (hFile == INVALID_HANDLE_VALUE)
      ErrorOpeningFile();
				
Να είστε προσεκτικοί όταν κωδικοποίησης για ασύγχρονων I/O, επειδή το σύστημα διατηρεί το δεξιά για να ορίσετε μια λειτουργία σύγχρονης αν χρειάζεται να. Επομένως, είναι καλύτερα αν γράφετε το πρόγραμμα να χειρίζεται σωστά μια λειτουργία εισόδου/εξόδου που μπορεί να ολοκληρωθεί τη σύγχρονη ή ασύγχρονη. Το δείγμα κώδικα δείχνει αυτό υπόψη.

Υπάρχουν πολλά πράγματα που πρέπει να ένα πρόγραμμα κατά την αναμονή για ασύγχρονη εργασίες για να ολοκληρωθεί, όπως ουράς πρόσθετες λειτουργίες, ή με τον τρόπο εργασία παρασκηνίου. Για παράδειγμα, ο παρακάτω κώδικας χειρίζεται σωστά συμπλήρωση επικαλυπτόμενη και επικαλύπτονται από μια λειτουργία ανάγνωσης. Κάνει τίποτα περισσότερο από αναμονή για την εξαιρετική εισόδου/εξόδου για να ολοκληρώσετε:
   if (!ReadFile(hFile,
                 pDataBuf,
                 dwSizeOfBuffer,
                 &NumberOfBytesRead,
                 &osReadOperation )
   {
      if (GetLastError() != ERROR_IO_PENDING)
      {
         // Some other error occurred while reading the file.
         ErrorReadingFile();
         ExitProcess(0);
      }
      else
         // Operation has been queued and
         // will complete in the future.
         fOverlapped = TRUE;
   }
   else
      // Operation has completed immediately.
      fOverlapped = FALSE;

   if (fOverlapped)
   {
      // Wait for the operation to complete before continuing.
      // You could do some background work if you wanted to.
      if (GetOverlappedResult( hFile,
                               &osReadOperation,
                               &NumberOfBytesTransferred,
                               TRUE))
         ReadHasCompleted(NumberOfBytesTransferred);
      else
         // Operation has completed, but it failed.
         ErrorReadingFile();
   }
   else
      ReadHasCompleted(NumberOfBytesRead);
				
Σημειώστε ότι & είναι διαφορετικό από το NumberOfBytesRead διαβιβάζεται στο τη συνάρτηση ReadFile & NumberOfBytesTransferred διαβιβάζεται στο GetOverlappedResult. Εάν μια λειτουργία έχει γίνει ασύγχρονη, στη συνέχεια, GetOverlappedResult χρησιμοποιείται για να προσδιοριστεί ο πραγματικός αριθμός των byte που μεταφέρονται κατά τη λειτουργία, αφού έχει ολοκλήρωση. Το & NumberOfBytesRead που διαβιβάστηκε στον τη συνάρτηση ReadFile είναι άνευ σημασίας.

Αν, από την άλλη πλευρά, μια εργασία έχει ολοκληρωθεί αμέσως, στη συνέχεια & NumberOfBytesRead εισήλθαν στη τη συνάρτηση ReadFile είναι έγκυρη για τον αριθμό των byte ανάγνωσης. Στην περίπτωση αυτή, Παράβλεψη της ΕΠΙΚΑΛΥΠΤΌΜΕΝΗΣ δομής περνά στο τη συνάρτηση ReadFile; δεν την χρησιμοποιείτε με GetOverlappedResult ή WaitForSingleObject.

Ότι μια άλλη ασύγχρονη λειτουργία είναι ότι δεν πρέπει να χρησιμοποιήσετε μιας ΕΠΙΚΑΛΥΠΤΌΜΕΝΗΣ δομής μέχρι την ολοκλήρωση της λειτουργίας που εκκρεμεί. Σε άλλες λέξεις, αν έχετε τρεις εκκρεμείς λειτουργίες εισόδου/εξόδου, πρέπει να χρησιμοποιήσετε τρεις ΕΠΙΚΑΛΥΠΤΌΜΕΝΗΣ δομές. Εάν χρησιμοποιείτε ξανά μιας ΕΠΙΚΑΛΥΠΤΌΜΕΝΗΣ δομής, θα λάβετε απρόβλεπτα αποτελέσματα στις λειτουργίες εισόδου/εξόδου και ενδέχεται να αντιμετωπίσετε καταστροφή δεδομένων. Επιπλέον, πριν μπορέσετε να χρησιμοποιήσετε μιας ΕΠΙΚΑΛΥΠΤΌΜΕΝΗΣ δομής για πρώτη φορά, ή πριν από την επαναχρησιμοποίηση μετά από μια προηγούμενη λειτουργία έχει ολοκληρωθεί, θα πρέπει να σωστά προετοιμάσετε έτσι δεν υπάρχουν δεδομένα σε αριστερά επηρεάζει τη νέα λειτουργία.

Το ίδιο είδος του περιορισμού που ισχύει για το buffer δεδομένων που χρησιμοποιούνται σε ένα η λειτουργία. Το buffer δεδομένων πρέπει να δεν ανάγνωση ή εγγραφή μέχρι την αντίστοιχη λειτουργία εισόδου/εξόδου έχει ολοκληρωθεί. ανάγνωση ή εγγραφή στο buffer μπορεί να προκαλέσει σφάλματα και κατεστραμμένα δεδομένα.

Ασύγχρονων I/O εξακολουθεί να εμφανίζεται να είναι σύγχρονη

Εάν ακολουθήσατε τις οδηγίες που εμφανίζονται παραπάνω σε αυτό το άρθρο, ωστόσο, όλες τις λειτουργίες εισόδου/εξόδου ακόμα συνήθως ολοκληρωθεί συγχρονικά με τη σειρά που έχουν εκδοθεί, και καμία από τις λειτουργίες τη συνάρτηση ReadFile επιστρέφει FALSE με GetLastError() επιστρέφει ERROR_IO_PENDING, αυτό σημαίνει ότι έχετε καμία ώρα για οποιαδήποτε εργασία παρασκηνίου. Γιατί συμβαίνει αυτό;

Υπάρχουν πολλές αιτίες γιατί ολοκληρωθεί συγχρονικά λειτουργίες εισόδου/εξόδου ακόμα και αν έχετε κώδικα για ασύγχρονη λειτουργία:

Συμπίεση

Ένα εμπόδιο για την ασύγχρονη λειτουργία είναι η συμπίεση NTFS. Το αρχείο πρόγραμμα οδήγησης του συστήματος δεν έχει πρόσβαση συμπιεσμένα αρχεία Ασύγχρονα; Αντίθετα όλα λειτουργίες απλά γίνονται σύγχρονη. Αυτό δεν ισχύει σε αρχεία που είναι συμπιεσμένα με βοηθητικά προγράμματα παρόμοια με ΣΥΜΠΊΕΣΗ ή το PKZIP.

Κρυπτογράφηση NTFS

Παρόμοια με συμπίεση, κρυπτογράφηση αρχείων που προκαλεί το πρόγραμμα οδήγησης συστήματος για να μετατρέψετε ασύγχρονων I/O σε σύγχρονη. Εάν τα αρχεία θα αποκρυπτογραφηθούν, θα ασύγχρονων αιτήσεων εισόδου/εξόδου.

Επέκταση ενός αρχείου

Ένας άλλος λόγος ότι λειτουργίες εισόδου/εξόδου θα ολοκληρωθεί συγχρονικά είναι οι λειτουργίες τους. Στα Windows NT, οποιαδήποτε εγγραφή θα είναι σύγχρονη λειτουργία σε ένα αρχείο το οποίο επεκτείνει το μήκος της.

ΣΗΜΕΊΩΣΗ: εφαρμογές μπορεί να κάνει η λειτουργία εγγραφής που αναφέρθηκαν προηγουμένως ασύγχρονη αλλάζοντας το έγκυρο μήκος δεδομένων του αρχείου, χρησιμοποιώντας τη συνάρτηση SetFileValidData, και ύστερα να εκδώσετε ένα WriteFile.

Χρήση SetFileValidData (που είναι διαθέσιμες στα Windows XP και νεότερες εκδόσεις), εφαρμογές να αποτελεσματικά επεκτείνετε αρχεία χωρίς ένα μειονέκτημα στις επιδόσεις για συμπλήρωση μηδέν τους.

Επειδή το σύστημα αρχείων NTFS δεν μηδέν-συμπλήρωση των δεδομένων μέχρι το έγκυρο μήκος δεδομένων (VDL) που καθορίζεται από το SetFileValidData, η συνάρτηση αυτή έχει συνέπειες στην ασφάλεια όπου το αρχείο μπορεί να αντιστοιχιστεί συμπλέγματα τα οποία είχαν προηγουμένως καταλαμβάνεται από άλλα αρχεία. Επομένως, το SetFileValidData απαιτεί ότι ο καλών έχει το νέο SeManageVolumePrivilege ενεργοποιημένη (από προεπιλογή, αυτό εκχωρείται μόνο στους διαχειριστές). Η Microsoft συνιστά ότι ISV να εξετάσετε προσεκτικά τις επιπτώσεις από τη χρήση αυτής της λειτουργίας.

Μνήμη cache

Τα περισσότερα προγράμματα οδήγησης εισόδου/εξόδου (δίσκος, επικοινωνίες και άλλα) έχει ειδική περίπτωση κώδικα όπου, εάν μια αίτηση I/O μπορεί να ολοκληρωθεί "άμεσα", η λειτουργία θα ολοκληρωθεί και η συνάρτηση τη συνάρτηση ReadFile ή WriteFile θα επιστρέψει την τιμή TRUE. Σε όλες τις μεθόδους, αυτοί οι τύποι των λειτουργιών φαίνεται να είναι συγχρονισμένη. Για ένα δίσκο συσκευή, συνήθως, μπορεί να ολοκληρωθεί μια αίτηση I/O "αμέσως" όταν τα δεδομένα αποθηκεύονται προσωρινά στη μνήμη.

Δεν υπάρχουν δεδομένα στο χώρο προσωρινής αποθήκευσης

Καθεστώτος προσωρινής αποθήκευσης εργασία έναντι, ωστόσο, εφόσον τα δεδομένα δεν είναι σε το χώρος προσωρινής αποθήκευσης. Η μνήμη cache του Windows NT έχει υλοποιηθεί εσωτερικά χρησιμοποιώντας το αρχείο αντιστοιχίσεων. Η διαχείριση μνήμης στα Windows NT δεν παρέχει μια ασύγχρονη σελίδα μηχανισμός βλάβης για να διαχειριστείτε τις αντιστοιχίσεις αρχείων που χρησιμοποιείται από τη διαχείριση μνήμης cache. Το διαχείριση μνήμης cache μπορεί, ωστόσο, να επαληθεύσετε εάν η σελίδα που ζητήθηκε είναι στη μνήμη, έτσι εάν εκδίδετε μια ασύγχρονη ανάγνωση προσωρινής αποθήκευσης και οι σελίδες δεν είναι στη μνήμη, το πρόγραμμα οδήγησης συστήματος αρχείων θεωρεί ότι δεν θέλετε το νήμα αποκλειστεί και η αίτηση θα διαχειρίζεται ένα περιορισμένο σύνολο των νημάτων εργασίας. Ο έλεγχος επιστρέφεται στο πρόγραμμα μετά την κλήση σας τη συνάρτηση ReadFile με την ανάγνωση ακόμα σε εκκρεμότητα.

Αυτό λειτουργεί καλά για ένα μικρό αριθμό των αιτήσεων, αλλά επειδή ο χώρος συγκέντρωσης των νημάτων εργασίας είναι περιορισμένη (αυτήν τη στιγμή τρία σε ένα σύστημα 16MB), θα εξακολουθεί να είναι μόνο μερικές αιτήσεις σε ουρά για το πρόγραμμα οδήγησης δίσκου σε μια συγκεκριμένη χρονική στιγμή. Εάν εκδίδετε πολλές λειτουργίες εισόδου/εξόδου για τα δεδομένα που δεν είναι στη μνήμη cache, κορεσθεί η διαχείριση μνήμης cache και διαχείριση μνήμης και σας αιτήματα σύγχρονη.

Η συμπεριφορά της μνήμης cache διαχείρισης μπορεί επίσης να επηρεαστεί με βάση το αν πρόσβαση σε αρχείο διαδοχικά ή τυχαία. Πλεονεκτήματα της μνήμης cache εμφανίζονται Οι περισσότερες κατά την πρόσβαση σε αρχεία διαδοχικά. Η σημαία FILE_FLAG_SEQUENTIAL_SCAN στο το CreateFile κλήσης θα βελτιστοποιήσει τη μνήμη cache για αυτόν τον τύπο πρόσβασης. Ωστόσο, εάν έχετε πρόσβαση σε αρχεία με τυχαίο τρόπο, χρησιμοποιήστε το Σημαία FILE_FLAG_RANDOM_ACCESS στο CreateFile για να υποδείξετε τη διαχείριση μνήμης cache Βελτιστοποιήστε τη συμπεριφορά της τυχαίας προσπέλασης.

Μην χρησιμοποιείτε τη μνήμη Cache

Η σημαία FILE_FLAG_NO_BUFFERING έχει πιο επίδραση στη συμπεριφορά του το σύστημα αρχείων για ασύγχρονη λειτουργία. Αυτός είναι ο καλύτερος τρόπος για τη διασφάλιση της ότι οι αιτήσεις εισόδου/εξόδου είναι πράγματι ασύγχρονη. Δίνει εντολή στο σύστημα αρχείων Για να μην χρησιμοποιήσετε οποιοδήποτε cache μηχανισμό καθόλου.

ΠΡΟΕΙΔΟΠΟΊΗΣΗ: υπάρχουν ορισμένοι περιορισμοί στη χρήση αυτή η σημαία που έχετε να κάνετε με τη στοίχιση του buffer δεδομένων και μέγεθος τομέα της συσκευής. Ανατρέξτε στην αναφορά συνάρτησης στην τεκμηρίωση για τη συνάρτηση CreateFile για περισσότερες πληροφορίες σχετικά με τη χρήση αυτή η σημαία σωστά.

Τα αποτελέσματα των δοκιμών Παραδείγματα αληθινών καταστάσεων

Ακολουθούν ορισμένα αποτελέσματα δοκιμής από το δείγμα κώδικα. Το μέγεθος των το Οι αριθμοί δεν είναι σημαντικό εδώ και ποικίλει από υπολογιστή σε υπολογιστή, αλλά η σχέση των αριθμών σε σύγκριση με άλλη illuminates του Γενικά επηρεάζουν τις σημαίες στις επιδόσεις.

Μπορείτε να αναμένετε να δείτε αποτελέσματα παρόμοια με τα ακόλουθα:
  • Δοκιμή 1
    Asynchronous, unbuffered I/O:  asynchio /f*.dat /n
    
       Operations completed out of the order in which they were requested.
       500 requests queued in 0.224264 seconds.
       500 requests completed in 4.982481 seconds.
    						
    Η δοκιμή αυτή δείχνει ότι το πρόγραμμα που αναφέρθηκαν προηγουμένως εκδοθεί γρήγορα 500 αιτήσεις εισόδου/εξόδου και είχε πολύ χρόνο για να κάνετε άλλες εργασίες ή να εκδίδουν περισσότερες αιτήσεις.
  • Δοκιμή 2
    Synchronous, unbuffered I/O: asynchio /f*.dat /s /n
    
       Operations completed in the order issued.
       500 requests queued and completed in 4.495806 seconds.
    						
    Αυτή η δοκιμή δείχνει ότι αυτό το πρόγραμμα που αναλώθηκε 4.495880 δευτερόλεπτα καλεί τη συνάρτηση ReadFile για να ολοκληρώσετε τις πράξεις, ότι η δοκιμή 1 που αναλώθηκε σε 0.224264 μόνο δευτερόλεπτα για να εκδώσετε την ίδια αιτήσεις. Στη δοκιμή 2, δεν υπήρχε καμία "επιπλέον" ώρα για το πρόγραμμα για να το κάνετε οποιαδήποτε φόντου εργασία.
  • Δοκιμή 3
    Asynchronous, buffered I/O: asynchio /f*.dat
    
       Operations completed in the order issued.
       500 requests issued and completed in 0.251670 seconds.
    						
    Η δοκιμή αυτή δείχνει τη συγχρονισμένη φύση της μνήμης cache. Όλες οι αναγνώσεις έχουν εκδοθεί και συμπληρώνονται σε 0.251670 δευτερόλεπτα. Με άλλα λόγια, ασύγχρονες αιτήσεις έχουν ολοκληρωθεί συγχρονικά. Δοκιμή αυτή επίσης δείχνει την υψηλή απόδοση της μνήμης cache διαχείρισης, όταν τα δεδομένα είναι σε η μνήμη cache.
  • Δοκιμή 4
    Synchronous, buffered I/O: asynchio /f*.dat /s
    
       Operations completed in the order issued.
       500 requests and completed in 0.217011 seconds.
    						
    Η δοκιμή αυτή παρουσιάζει τα ίδια αποτελέσματα όπως δοκιμή 3. Σημειώστε ότι σύγχρονων αναγνώσεων από τη μνήμη cache ολοκλήρωση λίγο γρηγορότερα από ασύγχρονων αναγνώσεων από τη μνήμη cache. Η δοκιμή αυτή δείχνει επίσης την υψηλή απόδοση της μνήμης cache διαχείρισης όταν τα δεδομένα που βρίσκονται στη μνήμη cache.

ΣΥΜΠΈΡΑΣΜΑ

Μπορείτε να αποφασίσετε ποια μέθοδο είναι καλύτερη επειδή όλα εξαρτάται από τον τύπο, το μέγεθος και αριθμός των λειτουργιών που εκτελεί το πρόγραμμα.

Η προεπιλεγμένη πρόσβαση στο αρχείο χωρίς να καθορίσετε οποιαδήποτε ειδική σημαιών για CreateFile είναι μια λειτουργία σύγχρονης και προσωρινής αποθήκευσης.

ΣΗΜΕΊΩΣΗ: Μπορείτε να λάβετε ορισμένες συμπεριφορά αυτόματης ασύγχρονη σε αυτήν τη λειτουργία, επειδή το πρόγραμμα οδήγησης συστήματος αρχείων έχει προληπτικής ασύγχρονη ανάγνωση εμπρός και ασύγχρονη εγγραφή lazy των τροποποιημένων δεδομένων. Παρόλο που αυτό δεν κάνει η εφαρμογή [ASCII 146] s εισόδου/εξόδου ασύγχρονης, είναι ιδανική περίπτωση για την πλειοψηφία των απλών εφαρμογών.

Εάν, από την άλλη πλευρά, η εφαρμογή σας δεν είναι απλή, ίσως χρειαστεί να εκτελέσετε μερικά προφίλ και εποπτείας επιδόσεων για να προσδιορίσετε την καλύτερη μέθοδο, παρόμοια με τις δοκιμές που περιγράφονται παραπάνω σε αυτό το άρθρο. Δημιουργία προφίλ του χρόνου που αναλώθηκε σε το Τη συνάρτηση ReadFile ή WriteFile συνάρτηση και στη συνέχεια σύγκριση Μακρύ αυτήν τη στιγμή για τον τρόπο που απαιτείται για πραγματική λειτουργίες εισόδου/εξόδου για την ολοκλήρωση είναι εξαιρετικά χρήσιμη. Εάν η πλειοψηφία του χρόνου που δαπανάται εξέδωσε στην πραγματικότητα η είσοδος/έξοδος, και στη συνέχεια να σας εισόδου/εξόδου ολοκληρωθεί συγχρονικά. Ωστόσο, εάν ο χρόνος που αναλώθηκε έκδοσης αιτήσεις εισόδου/εξόδου είναι σε σχετικά μικρό μέγεθος σύγκριση με το χρόνο αυτό παίρνει για τις λειτουργίες εισόδου/εξόδου για να ολοκληρωμένη, στη συνέχεια, τις λειτουργίες που αντιμετωπίζονται ασύγχρονα. Το δείγμα κώδικα που αναφέρεται παραπάνω σε αυτό το άρθρο χρησιμοποιεί τη συνάρτηση QueryPerformanceCounter για να γίνει το δικό του εσωτερική δημιουργία προφίλ.

Παρακολούθηση επιδόσεων μπορεί να σας βοηθήσει να προσδιορίσετε πόσο αποτελεσματικά το πρόγραμμά σας είναι χρήση του δίσκου και τη μνήμη cache. Οποιονδήποτε από τους μετρητές επιδόσεων για παρακολούθηση το αντικείμενο προσωρινής αποθήκευσης θα υποδεικνύει την απόδοση της μνήμης cache διαχείρισης. Παρακολούθηση των μετρητών επιδόσεων για το φυσικό δίσκο ή λογικό δίσκο τα αντικείμενα θα υποδεικνύει την απόδοση των συστημάτων δίσκο.

Υπάρχουν πολλά βοηθητικά προγράμματα που βοηθούν στην παρακολούθηση των επιδόσεων; PerfMon και DiskPerf είναι ιδιαίτερα χρήσιμη. Για το σύστημα για τη συλλογή δεδομένων σχετικά με τις επιδόσεις των συστημάτων δίσκου, πρέπει να πρώτα να εκδώσετε την εντολή diskperf -y. Αφού εκδώσετε την εντολή, πρέπει να επανεκκινήσετε το σύστημα για να ξεκινήσετε τη συλλογή δεδομένων.

Αναφορές

Για περισσότερες πληροφορίες σχετικά με αυτά τα βοηθητικά προγράμματα και εποπτείας επιδόσεων, δείτε τον τόμο "Βελτιστοποίηση των Windows NT" Windows NT του πόρου που Τεκμηρίωση του κιτ.
SQL Server απαιτεί συστήματα για την υποστήριξη «εγγυημένη παράδοση σταθερό μέσο», όπως περιγράφεται κάτω από το πρόγραμμα Microsoft SQL Server Always-On αποθήκευσης λύσης αναθεώρηση. FOΓια περισσότερες πληροφορίες σχετικά με τις απαιτήσεις εισόδου και εξόδου για το μηχανισμό διαχείρισης βάσης δεδομένων SQL Server, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
967576Απαιτήσεις εισόδου/εξόδου μηχανισμό βάσης δεδομένων Microsoft SQL Server

Ιδιότητες

Αναγν. άρθρου: 156932 - Τελευταία αναθεώρηση: Πέμπτη, 30 Μαΐου 2013 - Αναθεώρηση: 3.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Win32 Application Programming Interface
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
Λέξεις-κλειδιά: 
kbapi kbfileio kbinfo kbkernbase kbmt KB156932 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη: 156932

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com