Optimisation de codeEn programmation informatique, l'optimisation de code est la pratique consistant à améliorer l'efficacité du code informatique d'un programme ou d'une bibliothèque logicielle. Ces améliorations permettent généralement au programme résultant de s'exécuter plus rapidement, de prendre moins de place en mémoire, de limiter sa consommation de ressources (par exemple les fichiers), ou de consommer moins d'énergie électrique. La règle numéro un de l'optimisation est qu'elle ne doit intervenir qu'une fois que le programme fonctionne et répond aux spécifications fonctionnelles.
Théorie des systèmes dynamiquesLa théorie des systèmes dynamiques désigne couramment la branche des mathématiques qui s'efforce d'étudier les propriétés d'un système dynamique. Cette recherche active se développe à la frontière de la topologie, de l'analyse, de la géométrie, de la théorie de la mesure et des probabilités. La nature de cette étude est conditionnée par le système dynamique étudié et elle dépend des outils utilisés (analytiques, géométriques ou probabilistes).
Système dynamiqueEn mathématiques, en chimie ou en physique, un système dynamique est la donnée d’un système et d’une loi décrivant l'évolution de ce système. Ce peut être l'évolution d'une réaction chimique au cours du temps, le mouvement des planètes dans le système solaire (régi par la loi universelle de la gravitation de Newton) ou encore l'évolution de la mémoire d'un ordinateur sous l'action d'un programme informatique. Formellement on distingue les systèmes dynamiques à temps discrets (comme un programme informatique) des systèmes dynamiques à temps continu (comme une réaction chimique).
Optimizing compilerIn computing, an optimizing compiler is a compiler that tries to minimize or maximize some attributes of an executable computer program. Common requirements are to minimize a program's execution time, memory footprint, storage size, and power consumption (the last three being popular for portable computers). Compiler optimization is generally implemented using a sequence of optimizing transformations, algorithms which take a program and transform it to produce a semantically equivalent output program that uses fewer resources or executes faster.
Algorithmes de remplacement des lignes de cacheArticle principal : mémoire cache Les mémoires caches dans les matériels informatiques sont le plus souvent partiellement associatives : une ligne de la mémoire principale ne peut être rangée que dans une partie bien définie de la mémoire cache. Dans le cas d'une mémoire cache logicielle, il est possible qu'elle soit totalement associative et gérée globalement. Dans les deux cas, se pose le problème de devoir dégager une place dans la mémoire cache, ou dans la partie de celle-ci concernée, lorsque celle-ci est pleine et qu'on veut y charger des données de la mémoire principale.
Cache-oblivious algorithmIn computing, a cache-oblivious algorithm (or cache-transcendent algorithm) is an algorithm designed to take advantage of a processor cache without having the size of the cache (or the length of the cache lines, etc.) as an explicit parameter. An optimal cache-oblivious algorithm is a cache-oblivious algorithm that uses the cache optimally (in an asymptotic sense, ignoring constant factors). Thus, a cache-oblivious algorithm is designed to perform well, without modification, on multiple machines with different cache sizes, or for a memory hierarchy with different levels of cache having different sizes.
Instruction set architectureIn computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, such as a central processing unit (CPU), is called an implementation. In general, an ISA defines the supported instructions, data types, registers, the hardware support for managing main memory, fundamental features (such as the memory consistency, addressing modes, virtual memory), and the input/output model of a family of implementations of the ISA.