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

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.

主站蜘蛛池模板: 浑源县| 缙云县| 榕江县| 和龙市| 百色市| 濮阳市| 龙游县| 板桥市| 婺源县| 平凉市| 广昌县| 竹山县| 平乡县| 丽江市| 合阳县| 余干县| 宜宾市| 浙江省| 始兴县| 红河县| 伊宁市| 灌云县| 阳新县| 施秉县| 正宁县| 巩义市| 明水县| 九江县| 南乐县| 九江市| 康保县| 板桥市| 绥阳县| 正安县| 嘉禾县| 宜宾县| 南陵县| 邢台县| 德庆县| 萝北县| 景宁|