Kodumun parçalarının verimliliğini test etmeye çalışıyorum ve C++, ctime
'da clock_t
türünü kullanarak program tarafından tüketilen işlemci zamanının ölçülmesini sağlayan clock
işlevine sahip. Kodda sadece iki nokta arasındaki mutlak zamanı ölçmeyen bazı Rust eşdeğeri var mı?C++ 'daki saat işlevine Rust değeri denk mi?
6
A
cevap
5
o clock
kullanmak gerekli ise, o zaman bir şim biraz eklemek gerekir. En azından OS X'de, libc'nin clock
'u göstermediği, ancak 'un'un clock_t
değerini verdiğini (bu denklemin daha zor kısmı) gösterir. clock
maruz sonra düz ileri:
extern crate libc;
mod ffi {
extern {
pub fn clock() -> ::libc::clock_t;
}
}
fn main() {
let start = unsafe { ffi::clock() };
let mut dummy = 0;
for i in 0..20000 { dummy += i };
let end = unsafe { ffi::clock() };
println!("{}, {}, {}, {}", dummy, start, end, end - start);
}
Herhalde olsa her koşulda aramaya clock
güvenli olarak işaretleyen bir sarmalayıcı yapmak istiyorum.
+1
'libc'' clock' içermez herhangi bir nedeni bilin. 'Saat'' C' stdlib’de görünüyor. – WiSaGaN
3
Bu kodu kullanıyorum:
extern crate libc;
use std::mem;
use std::io;
use std::time::Duration;
pub fn cpu_time() -> Duration {
unsafe {
let mut tp = mem::uninitialized();
if sys::clock_gettime(sys::CLOCK_PROCESS_CPUTIME_ID, &mut tp) == 0 {
Duration::new(tp.tv_sec as u64, tp.tv_nsec as u32)
} else {
panic!("cpu_time: {}", io::Error::last_os_error());
}
}
}
mod sys {
use libc::{c_int, timespec};
extern "C" {
pub fn clock_gettime(clk_id: c_int, tp: *mut timespec) -> c_int;
}
pub const CLOCK_PROCESS_CPUTIME_ID: c_int = 2;
}
İlgili konular
- 1. Java, C# 'ın Environment.GetCommandLineArgs() öğesine denk mi?
- 2. Erlang için HLint'e denk mi?
- 3. Python'un PHP'nin strip_tags'ına denk mi?
- 4. Tavuk Şeması Perl'ın $ 0'ına denk mi?
- 5. Rust, vektör bir yineleyici mi?
- 6. Rust
- 7. C++ 'daki Sezar şifresi
- 8. C# Javaccript işlevine nesne gönderme C#
- 9. Scala'da Python'un daha genel harita fonksiyonuna denk mi var?
- 10. Rust
- 11. Rust
- 12. Rust
- 13. Rust, Python'un liste anlama sözdizimine eşdeğer mi?
- 14. C++ 'daki Geometri kütüphanesi
- 15. C++ 'daki örtük dönüşümler
- 16. Değişkenleri Objective-C'den javascript işlevine geçirin mi?
- 17. jQuery getJSON - Arayanın işlevine dönüş değeri
- 18. C++ 'daki boş fonksiyondan nasıl çıkıyorsunuz?
- 19. Python listesini Pas işlevine geçir
- 20. C# 'daki Twitter'dan fotoğraflar alın.
- 21. C# daki süreyi nasıl kaydedebilirim?
- 22. Görsel stüdyosunda saat değişkeni olmaksızın saat değişkeninin kopya değeri
- 23. Tarih/Saat Matematik HQL'de mi?
- 24. Bir sistem işlevine ulaşmak için çapa C#
- 25. go dahili "yazdırma" işlevine sahip mi?
- 26. Pas, Python unichr() işlevine eşdeğer mi?
- 27. Tarih-saat öğesinin tarih değeri ayarından
- 28. Rust Hassas bellek düzeni kontrolü?
- 29. İşlev Şablon sınıfının üye işlevine işaretçi? (C++)
- 30. C# 'daki iki yola nasıl katılırım?
https://doc.rust-lang.org/time/time/fn.precise_time_ns.html gibi yüksek çözünürlüklü bir zamanlayıcısında sorun nedir? –
'libc' sandık,' clock' işlevi –
@Ker, OP kullanıcı saatini sorar, duvar saatini değil. – WiSaGaN