Swift3
Вы можете использовать синтаксис индекса для доступа к Персонажу по определенному строковому индексу.
let greeting = "Guten Tag!"
let index = greeting.index(greeting.startIndex, offsetBy: 7)
greeting[index] // a
или мы можем сделать строку Расширение в Swift 4
extension String {
func getCharAtIndex(_ index: Int) -> Character {
return self[self.index(self.startIndex, offsetBy: index)]
}
}
ИСПОЛЬЗОВАНИЕ:
let foo = "ABC123"
foo.getCharAtIndex(2) //C
Я думаю, что они говорят не о том, что вся программа помещается в кеш L1, а что весь код, который выполняется большую часть времени, помещается в кеш L1.
Да, ОС выделяет множество других структур, но они используются достаточно редко, чтобы не иметь значения.
Конечно, это все предположения - - Я ничего не знаю о языке «К».
Я считаю, что они говорят о том преимуществе, что основной исполняемый код помещается в кэш L1; независимо от объема памяти, выделенной программе. После загрузки K-приложения, если оно никогда не касается этой памяти, тогда не имеет значения, выделено ли оно с точки зрения производительности (то есть преимущество perf, заключающееся в том, что оно полностью находится в кэше L1).
независимо от объема памяти, выделенной программе. После загрузки K-приложения, если оно никогда не касается этой памяти, тогда не имеет значения, выделено ли оно с точки зрения производительности (то есть преимущество perf, заключающееся в том, что оно полностью находится в кэше L1). независимо от объема памяти, выделенной программе. После загрузки K-приложения, если оно никогда не касается этой памяти, тогда не имеет значения, выделено ли оно с точки зрения производительности (то есть преимущество perf, заключающееся в том, что оно полностью находится в кэше L1).Вы путаете весь программный код с наиболее часто выполняемым кодом.
Для интерпретируемых языков ядро интерпретатора, безусловно, является одним из наиболее часто выполняемых кодов. Наличие наиболее часто выполняемого кода в кэше ускоряет выполнение так же, как и наиболее часто используемые данные в кеше.
Ключевой частью является «наиболее часто» - нет необходимости иметь кэшированный весь код / данные, чтобы увидеть значимые ускорение.
Интерпретатор работает как обычная программа, управляемая ОС. Интерпретируемая программа выполняется в пространстве памяти интерпретатора, в сегменте данных. Многие программы K могут легко поместиться в кэш L1 полностью, хотя весь интерпретатор может и не поместиться. Однако основной цикл интерпретатора, вероятно, поместится.