LINUX.ORG.RU

Часть бенчмарков вровень даже. Приятно, чо.

kirk_johnson ★☆
()

сливают

На 10%? Так себе проблема.

RazrFalcon ★★★★★
()

сдали лабу, или препод не защитал?

fsb4000 ★★★★★
()

А что сказать-то хотели, что Rust компилит в код с практически таким же перформансом, как и С++? Вот это поворот!

seiken ★★★★★
()

так язык-то один: llvm, логично, что перфоманс будет примерно одинаков

next_time ★★★★★
()

Да даже не важно что он на 10 процентов медленее, важно чтл у него вырвиглазный синтаксис и нет ооп.

bonta ★★★★★
()

Открываю сначала v0, там вроде код нормальный растовский. Открываю v7…

#[inline]
pub fn z_encode(x: u32, y: u32) -> u32 {
    let odd_bits = 0x55555555;
    let even_bits = 0xAAAAAAAA;
    unsafe { _pdep_u32(x, odd_bits) | _pdep_u32(y, even_bits) }
}

или

for (&d0, &t0) in vd_row.iter().zip(vt_row) {
   let d2 = simd::swap(d0, 2);
   let d4 = simd::swap(d0, 4);
   let d6 = simd::swap(d4, 2);
   let t1 = simd::swap(t0, 1);
   tmp[0] = simd::min(tmp[0], simd::add(d0, t0));
   tmp[1] = simd::min(tmp[1], simd::add(d0, t1));
   tmp[2] = simd::min(tmp[2], simd::add(d2, t0));
   tmp[3] = simd::min(tmp[3], simd::add(d2, t1));
   tmp[4] = simd::min(tmp[4], simd::add(d4, t0));
   tmp[5] = simd::min(tmp[5], simd::add(d4, t1));
   tmp[6] = simd::min(tmp[6], simd::add(d6, t0));
   tmp[7] = simd::min(tmp[7], simd::add(d6, t1));
}

В итоге получили картину: как от раста не оставить раста

maxis11
()
Ответ на: комментарий от maxis11

Не ну а чо ты хотел. Весь оптимизированный по самое ололо код обычно выглядит именно так. Ну и тащем-то здесь только unsafe выбивается.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от maxis11

А С++ версии как тебе?

v0

v7

То что этот студень переписал лабу на раст это пофиг. Главное что он там указал в ссылках слайды оригинальной лабы:

http://ppc.cs.aalto.fi/ch2/

Там можно кое-что почитать про оптимизации, так то интересно.

v0 и v7 в 36 раз по скорости отличаются в пользу v7.

fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.