Профиль пользователя заблокирован сроком с 23 октября 2024 г. по 25 октября 2024 г. по причине: Нарушение пункта 4.1 правил
Ответы пользователя по тегу Rust
  • По каким причинам тест может "падать" именно в github actions?

    @historydev
    Валера, настало твоё время
    Попробуй собрать в виртуалке, предварительно подготовив окружение, возможно проблема в том что всё это запускается в виртуалке.
    Можно докер, vbox, qemu - что угодно.
    Ответ написан
    Комментировать
  • Как поправить код, чтобы улучшить расхождения времени его выполнения?

    @historydev
    Валера, настало твоё время
    Возможно OC выдала вторичный поток - частично лечится повышением приоритета процесса или выставлением определённого ядра, например через process lasso.

    Лучше создай массив вне цикла для хранения времени каждой итерации цикла и записывай туда, желательно не в куче [f32; N].

    Следом после того, как программа завершит выполнение выведи свой массив и посмотри данные, по хорошему вывести среднее значение, но если важна каждая отдельная итерация, глазами поработать придётся.

    А сейчас ты записываешь лишь последний результат.

    P.S: Пересмотрел код, меряешь в наносекундах, а юзаешь вектор - который хранится в куче.
    Вот тебе и ответ полагаю, перемести данные из кучи в стек, должно стать стабильнее.

    И учти коммент: mayton2019
    Сейчас ты меряешь какой-то случайный процесс который в общей своей массе длиннее
    чем твой изучаемый алгоритм.
    Ответ написан
  • Различная конфигурация для пакетов в одном workspace?

    @historydev
    Валера, настало твоё время
    https://doc.rust-lang.org/book/ch14-03-cargo-works...
    A workspace is a set of packages that share the same Cargo.lock and output directory.


    https://doc.rust-lang.org/cargo/commands/cargo-bui...
    cargo build -p kernel --target x86_64-unknown-none
    Ответ написан
    Комментировать
  • Возможно ли собрать данные из итератора в уже созданный буфер?

    @historydev
    Валера, настало твоё время
    Судя по коду и как я понял твою белиберду, что-то вроде этого:

    let arr: [i32; 10] = [1,2,3,4,5,6,7,8,9, 10];
    let mut arr2: [i32; 10] = [0; 10];
    
    arr.iter().enumerate().for_each(|(i, n)| if i % 2 == 0 { arr2[i] = *n; });
    
    println!("{arr2:?}");
    Ответ написан
    Комментировать
  • Какие можно посмотреть курсы/уроки по практике на rust?

    @historydev
    Валера, настало твоё время
    Набей сначала умение думать, а потом приступай к инструментам, реализованными людьми, которые умеют это делать.
    Такие вопросы по отношению к Rust - это абсурд.
    Ответ написан
    Комментировать
  • В чём проявляется зависимость c++ от железа и касается ли это Rust?

    @historydev
    Валера, настало твоё время
    Java запускается в переносимой виртуальной машине которая уже умеет во все архитектуры, а на системных языка тебе нужно компилировать программу для конкретной архитектуры, например: x86, arm.

    Это не значит что тебе нужно для каждого процессора отдельно компилировать, это значит что тебе необходимо скомпилировать один раз для каждой архитектуры.

    Архитектура подразумевает публичный api который реализуется множеством процессоров.

    Не нужно сравнивать прикладные языки с системными.

    Единственный низкоуровневый язык - это язык ассемблера, все остальные, включая С - высокоуровневые языки.

    Разница лишь в области применения, никто не будет писать фронтенды на С, у каждого из инструментов есть проблема, которую он решает и область применения в которой эта проблема актуальна.
    Ответ написан
    Комментировать
  • Как передать индекс u8 в pow u32 метод?

    @historydev Автор вопроса
    Валера, настало твоё время
    2 ошибки, перепутал порядок элементов в деструктуризации кортежа который возвращает enumerate и пытался привести из-за этого usize в u16, отсюда и ошибка #2:
    let curr_num: u16 = 2000;
        let mut num: u16 = 0;
        
        for (i, b) in curr_num.to_le_bytes().iter().enumerate() {
            num += (*b as u16) * 256u16.pow(i as u32);
        }
        
        println!("{num}");
    Ответ написан
    Комментировать