|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programvara
  • Adobe Illustrator
  • animation Software
  • antivirusprogram
  • ljudprogram
  • Säkerhetskopiera data
  • Bränn CD-skivor
  • Bränn DVD
  • Data Compression
  • Database Software
  • Desktop Publishing
  • Desktop Video
  • Digital Video Software
  • Drupal
  • Educational Software
  • Engineering Software
  • Filtillägg Typer
  • Financial Software
  • Freeware , Shareware & Abandonware
  • GIMP
  • Graphics Software
  • Home Recording Software
  • Microsoft Access
  • Microsoft Excel
  • Microsoft Publisher
  • Microsoft Word
  • Open Source Code
  • Andra datorprogram
  • PC-spel
  • Photoshop
  • Portable Document Format
  • PowerPoint
  • presentationsprogram
  • Produktivitet Software
  • quicktime
  • Remote Desktop Management
  • SQL Server
  • Skype
  • Programvara betaversioner
  • Programvara Konsulter
  • Software Development Companies
  • Software Licensing
  • Spreadsheets
  • Skatt förberedelse programvara
  • Utility Software
  • Web Clip Art
  • Windows Media Player
  • Ordbehandlingsprogram
  • Facebook
  • Twitter
  • Instagram
  • LinkedIn
  • TikTok
  • WhatsApp
  • WordPress
  • Chrome
  • Discord
  • Amazon
  • * Dator Kunskap >> Programvara >> quicktime >> Content

    Hur kan jag implementera en timer i Fortran för att mäta exekveringstiden för mitt program?

    Fortran erbjuder flera sätt att implementera en timer för att mäta exekveringstid. Det bästa tillvägagångssättet beror på dina behov av precision och portabilitet. Här är tre vanliga metoder:

    1. Använda funktionen `CPU_TIME '(enklaste, men mindre exakt):

    Detta är den enklaste metoden som är inbyggd direkt i Fortran. `CPU_TIME 'Returnerar processortiden som används av programmet sedan starten på några sekunder. Det är i allmänhet mindre exakt än andra metoder, särskilt på multikärnsystem där det kanske inte återspeglar sann väggklockningstid.

    `` `Fortran

    program timing_example

    implicit ingen

    Real ::Start_Time, End_Time, Elapsed_Time

    Ring CPU_TIME (Start_Time)

    ! Din kod som ska tidpunkten går hit

    ! ... långa beräkningar ...

    Ring CPU_TIME (END_TIME)

    ELAPSED_TIME =END_TIME - START_TIME

    Skriv ut *, "förfluten CPU -tid:", ELAPSED_TIME, "SECONDS"

    slutprogram timing_example

    `` `

    2. Använda "System_Clock" Intrinsic Subroutine (mer exakt, plattformsberoende):

    `System_Clock` ger mer kontroll och potentiellt högre precision. Det låter dig ange enheterna för den returnerade tiden (t.ex. sekunder, millisekunder, mikrosekunder). De tillgängliga enheterna och precisionen är emellertid systemberoende.

    `` `Fortran

    program timing_example_system_clock

    implicit ingen

    heltal, parameter ::count_rate =1000! Räkningsgrad i millisekunder

    heltal ::start_count, end_count, eLAPSED_COUNT

    REAL ::eLAPSED_TIME

    Call System_Clock (Start_Count, count_rate)

    ! Din kod som ska tidpunkten går hit

    ! ... långa beräkningar ...

    Call System_Clock (END_COUNT, COUNT_RATE)

    eLAPSED_COUNT =END_COUNT - START_COUNT

    ELAPSED_TIME =Real (ELAPSED_COUNT) / REAL (count_rate)

    Skriv ut *, "förfluten tid:", eLAPSED_TIME, "sekunder"

    Slutprogram timing_example_system_clock

    `` `

    3. Använda plattformsspecifika bibliotek (mest exakta, minst bärbara):

    För de högsta precision och mest exakta mätningarna av väggklockan kan du behöva gränssnitt med operativsystemspecifika bibliotek. Detta tillvägagångssätt är mindre bärbart eftersom koden kommer att behöva justeringar för olika system (Linux, Windows, MacOS).

    * Linux (med `getTimeOfday`): Du måste förklara ett gränssnitt till funktionen "getTimeOfday" från "` rubrikfilen. Detta innebär att använda modulen "ISO_C_BINDING` och noggrann hantering av typ. Exempel (kräver felhantering för produktionskod):

    `` `Fortran

    Program Timing_Example_GetTimeOfday

    Använd iso_c_binding

    implicit ingen

    Inkludera 'Time.h' // eller använd ett lämpligt alternativ för din kompilator. Vissa kompilatorer kräver inte uttryckligt inkluderar.

    Typ (C_PTR) ::TV

    heltal (c_int) ::rc

    dubbel precision ::start_time, end_time, eLAPSED_TIME

    Allocate (TV)

    rc =c_getTimeOfday (TV, C_NULL_PTR)! Få starttid

    start_time =c_f_double (c_loc (TV)%tid) + c_f_double (c_loc (TV)%TV_SEC)

    ! Din kod som ska tidpunkten går hit

    ! ... långa beräkningar ...

    rc =c_getTimeOfday (TV, C_NULL_PTR)! Få sluttid

    END_TIME =C_F_DOUBLE (C_LOC (TV)%tid) + C_F_Double (C_LOC (TV)%TV_SEC)

    Deallocate (TV)

    ELAPSED_TIME =END_TIME - START_TIME

    Skriv ut *, "förfluten tid:", eLAPSED_TIME, "sekunder"

    Slutprogram timing_example_getTimeOfday

    `` `

    Kom ihåg att sammanställa med lämpliga flaggor för att länka mot nödvändiga bibliotek (t.ex. `-lrt` för` getTimeOfday` på Linux). Det exakta kompileringskommandot beror på din kompilator (GFORTRAN, IFORT, etc.).

    Välj den metod som bäst passar dina behov. För enkel timing är "cpu_time" tillräckligt. För bättre precision, använd `System_Clock '. För den högsta precisionen och den mest exakta väggklockan kan du överväga att använda plattformsspecifika bibliotek men vara medveten om portabilitetskonsekvenser. Var alltid medveten om att timerupplösningen varierar mycket mellan system. Därför bör du inte förvänta dig mikrosekund precision på alla plattformar och konfigurationer.

    Tidigare:

    nästa:
    relaterade artiklar
    ·Lägga till QuickTime komponenter i Mac OS X
    ·Hur kan jag implementera en timer i Fortran för att mä…
    ·Varför kan mini -verktygsfältet spara tid?
    ·Varför är en hård åtkomst tid snabbare än diskette…
    ·Hur man sparar QuickTime-filmer till iTunes
    ·Vad är koden för att hitta datordatum?
    ·Hur ändrar du tiden på en umbro digital klocka?
    ·Vad är QuickTime Player För
    ·Hur man sparar Från M4V till AVI i Quicktime
    ·Hur kan du ställa in en annan FaceTime-kontakt?
    Utvalda artiklarna
    ·Hur sälja Excel Utbildning Videos
    ·Vad behövs för normalisering i dbms?
    ·Hur man installerar YouTube Kids på din Amazon Fire-su…
    ·Hur man gör klickbara PDF-filer
    ·Hur överför du en fil från Internet till skrivbordet…
    ·Vad är XMP-filer i Photoshop
    ·Konfigurera MS SQL 2008 för SQL Server Authentication
    ·Hur man skapar mallar Letters
    ·Hur man lägger ett PDF-dokument på din webbplats
    ·Är det sant om du har mycket text som vill använda i …
    Copyright © Dator Kunskap https://www.dator.xyz