A- လုပ်ဆောင်ချိန်ကို တိုင်းတာရန် microbenchmark ပက်ကေ့ဂျ်ကို အသုံးပြုနည်း


မတူညီသောအသုံးအနှုန်းများ၏ လုပ်ဆောင်ချိန်ကို နှိုင်းယှဉ်ရန် R တွင် microbenchmark ပက်ကေ့ခ်ျကို သင်အသုံးပြုနိုင်ပါသည်။

၎င်းကိုလုပ်ဆောင်ရန် အောက်ပါ syntax ကို သင်အသုံးပြုနိုင်သည်-

 library (microbenchmark)

#compare execution time of two different expressions
microbenchmark(
  expression1,
  expression2)
)

အောက်ဖော်ပြပါ ဥပမာသည် ဤ syntax ကို လက်တွေ့တွင် မည်သို့အသုံးပြုရမည်ကို ပြသထားသည်။

ဥပမာ- R တွင် microbenchmark() ကိုအသုံးပြုခြင်း။

ဘတ်စကက်ဘောအသင်းအသီးသီးရှိ ကစားသမားများမှ ရမှတ်များအကြောင်း အချက်အလက်များပါရှိသော R တွင် အောက်ပါဒေတာဘောင်တစ်ခုရှိသည် ဆိုပါစို့။

 #make this example reproducible
set. seed ( 1 )

#create data frame
df <- data. frame (team=rep(c(' A ', ' B '), each= 500 ),
                 points=rnorm( 1000 , mean= 20 ))

#view data frame
head(df)

  team points
1 A 19.37355
2 A 20.18364
3 A 19.16437
4 A 21.59528
5 A 20.32951
6 A 19.17953

ယခု ကျွန်ုပ်တို့သည် မတူညီသောနည်းလမ်းနှစ်ခုဖြင့် အသင်းတစ်ခုစီရှိ ကစားသမားများရရှိသော ပျမ်းမျှအမှတ်များကို တွက်ချက်လိုသည်ဆိုပါစို့။

  • နည်းလမ်း 1 : Base R မှ Aggregate() ကို သုံးပါ။
  • နည်းလမ်း 2- dplyr မှ group_by() နှင့် summarise_at() ကို သုံးပါ။

ဤအသုံးအနှုန်းတစ်ခုစီကို လုပ်ဆောင်ရန် လိုအပ်သည့်အချိန်ကို တိုင်းတာရန် microbenchmark() လုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့ အသုံးပြုနိုင်ပါသည်။

 library (microbenchmark)
library (dplyr)

#time how long it takes to calculate mean value of points by team
microbenchmark(
  aggregate(df$points, list(df$team), FUN=mean),
  df %>% group_by(team) %>% summarise_at(vars(points), list(name = mean))
)

Unit: milliseconds
                                                                    express
                         aggregate(df$points, list(df$team), FUN = mean)
 df %>% group_by(team) %>% summarise_at(vars(points), list(name = mean))
      min lq mean median uq max neval cld
 1.307908 1.524078 1.852167 1.743568 2.093813 4.67408 100 a 
 6.788584 7.810932 9.946286 8.914692 10.239904 56.20928 100 b

microbenchmark() လုပ်ဆောင်ချက်သည် စကားရပ်တစ်ခုစီကို အကြိမ် 100 လုပ်ဆောင်ပြီး အောက်ပါ မက်ထရစ်များကို တိုင်းတာသည်-

  • အနည်းဆုံး – အကောင်အထည်ဖော်ရန် အနည်းဆုံးအချိန်လိုအပ်သည်။
  • lq : ပြီးမြောက်ရန် အချိန်၏အောက်ခြေ quartile (25th ရာခိုင်နှုန်း)
  • ဆိုလိုသည်မှာ အကောင်အထည်ဖော်ရန် ပျမ်းမျှအချိန်လိုအပ်သည်။
  • ပျမ်းမျှ : ပျမ်းမျှ ကွပ်မျက်ချိန်
  • uq : အထက် quartile (75th percentile) ကို လုပ်ဆောင်ရန် လိုအပ်သည်။
  • အမြင့်ဆုံး : အကောင်အထည်ဖော်ရန် အများဆုံးအချိန် လိုအပ်သည်။
  • neval : စကားရပ်တစ်ခုစီကို အကဲဖြတ်သည့်အကြိမ်အရေအတွက်

ပုံမှန်အားဖြင့်၊ ကျွန်ုပ်တို့သည် စကားရပ်တစ်ခုစီကို လုပ်ဆောင်ရန် ပျမ်းမျှ သို့မဟုတ် ပျမ်းမျှအချိန်ကိုသာ ကြည့်ရှုသည်။

ရလဒ်မှ ကျွန်ုပ်တို့ မြင်နိုင်သည်-

  • R-based နည်းလမ်းကို အသုံးပြု၍ အသင်းရမှတ်များကို ပျမ်းမျှတွက်ချက်ရန် ပျမ်းမျှအချိန် 1,852 မီလီစက္က န့် ကြာပါသည်။
  • dplyr နည်းလမ်းကို အသုံးပြု၍ အဖွဲ့တစ်ဖွဲ့လျှင် ပျမ်းမျှအမှတ်များကို တွက်ချက်ရန် ပျမ်းမျှအချိန် 9.946 မီလီစက္က န့် ကြာသည်။

ဤရလဒ်များကို အခြေခံ၍ အခြေခံ R နည်းလမ်းသည် သိသိသာသာ ပိုမြန်သည်ဟု ကျွန်ုပ်တို့ ကောက်ချက်ချပါသည်။

စကားရပ်တစ်ခုစီကိုလုပ်ဆောင်ရန် လိုအပ်သောအချိန်များကို ဖြန့်ကျက်မြင်ယောင်ရန် boxplot() လုပ်ဆောင်ချက်ကိုလည်း အသုံးပြုနိုင်သည်။

 library (microbenchmark)
library (dplyr)

#time how long it takes to calculate mean value of points by team
results <- microbenchmark(
  aggregate(df$points, list(df$team), FUN=mean),
  df %>% group_by(team) %>% summarise_at(vars(points), list(name = mean))
)

#create boxplot to visualize results
boxplot(results, names=c(' Base R ', ' dplyr '))

microbenchmark package boxplot သည် R ကိုပေးသည်။

အကွက်ကွက်များမှ၊ အဖွဲ့တစ်ဖွဲ့လျှင် ပျမ်းမျှအမှတ်တန်ဖိုးကို တွက်ချက်ရန် dplyr နည်းလမ်းသည် ပျမ်းမျှပိုကြာကြောင်း ကျွန်ုပ်တို့တွေ့မြင်နိုင်ပါသည်။

မှတ်ချက် – ဤဥပမာတွင်၊ မတူညီသောအသုံးအနှုန်းနှစ်ခု၏ လုပ်ဆောင်ချိန်ကို နှိုင်းယှဉ်ရန် microbenchmark() လုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့အသုံးပြုခဲ့သည်၊ သို့သော် သင်သည် လက်တွေ့တွင် သင်အလိုရှိသော စကားရပ်များစွာကို နှိုင်းယှဉ်နိုင်သည်။

ထပ်လောင်းအရင်းအမြစ်များ

အောက်ဖော်ပြပါ သင်ခန်းစာများသည် R တွင် အခြားဘုံအလုပ်များကို မည်သို့လုပ်ဆောင်ရမည်ကို ရှင်းပြသည်-

R တွင် ပတ်ဝန်းကျင်ကို မည်ကဲ့သို့ ရှင်းလင်းမည်နည်း။
RStudio ရှိ မြေကွက်များအားလုံးကို ရှင်းလင်းနည်း
R တွင် ပက်ကေ့ဂျ်များစွာကို မည်သို့တင်ရမည်နည်း။

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်