Я пытаюсь реализовать символьно-частотную функцию в C. Конечно, эта задача очень проста, просто зациклите строку и увеличьте ее следующим образом:
for(cycle = 0; cycle < length; cycle++){
integer = line[cycle];
bins[ integer*length+cycle ]++;
}
Теперь, когда вы делаете это более миллиардараз или больше (да, мои файлы такие большие), эта часть программы становится довольно трудоемкой, так как к массиву нужно будет обращаться 10e8 * длины раз.
Я некоторое время гуглил и нашелДостаточно примеров, как добавлять, умножать, делить и т. д. с использованием регистров, но, поскольку я не очень знаком с SSE, MMX и т. д., я не знаю, как реализовать подсчет символов с помощью этих функций.
Я надеюсь сократить время, затрачиваемое на эту функцию, поскольку 4 символа могут быть прочитаны одновременно.Не могли бы вы показать мне в правильном направлении или даже лучше представить кусок кода?
Заранее спасибо.Mark