官术网_书友最值得收藏!

CPU-bound

Many algorithms are built around operations that need only the CPU to be completed. The performance of such algorithms will be delimited by the CPU in which they are running, and solely upgrading the CPU will usually improve their performance.

Let's think, for example, of a simple algorithm that takes a word and returns whether it's a palindrome or not:

fun isPalindrome(word: String) : Boolean {
val lcWord = word.toLowerCase()
return lcWord == lcWord.reversed()
}

Now, let's consider that this function is called from another function, filterPalindromes(), which takes a list of words and returns the ones that are palindromes:

fun filterPalindromes(words: List<String>) : List<String> {
return words.filter { isPalindrome(it) }
}

Finally, filterPalindromes() is called from the main method of the application where a list of words has been already defined:

val words = listOf("level", "pope", "needle", "Anna", "Pete", "noon", "stats")

fun main(args: Array<String>) {
filterPalindromes(words).forEach {
println(it)
}
}

In this example, all the parts of the execution depend on the CPU. If the code is updated to send hundreds of thousands of words, filterPalindromes() will take longer. Also, if the code is executed in a faster CPU, the performance will be improved without code changes.

主站蜘蛛池模板: 枣强县| 汝南县| 华宁县| 南岸区| 扎赉特旗| 民权县| 海晏县| 平阴县| 京山县| 蓬溪县| 天水市| 垣曲县| 金山区| 南通市| 依兰县| 公主岭市| 肇东市| 六安市| 漳州市| 高安市| 巴南区| 黄石市| 洪雅县| 成都市| 邵东县| 开封市| 逊克县| 普格县| 赤峰市| 西盟| 施甸县| 灌云县| 福泉市| 沂源县| 元阳县| 饶河县| 华池县| 定陶县| 林甸县| 扬州市| 遂宁市|