Search
Write a publication
Pull to refresh
0
0
Send message
std::vector<int> createVector(int size) {
    std::vector<int> result;
    result.resize(size);
    for (int ii = 0; ii < size; ++ii) {
        result.push_back(ii * ii);
    }
    return result;
}

Тут явно опечатка. Вместо result.resize(size) должно быть result.reserve(size). Я не знаю проверяли ли вы ассемблер на resize или все таки reserve, хотелось бы обновленный ассемблер если все таки на resize :)

Основная проблема в оптимизации, начиная с момента, когда скорость процессоров перерасла скорость доступа в памяти, это собственно скорость доступа к памяти. Тупо менять float на int, когда части матрицы разбросаны по разным частям памяти. Вы не получите серьезного прироста к fps и просто усложните себе жизнь.

На современных системах благодаря различным оптимизациям, инструкциям и векторизации разницы уже нет, а зачастую float даже быстрее при умножении/делении, чем int.

Information

Rating
8,458-th
Registered
Activity