Skip to content Skip to navigation

Connexions

You are here: Home » Content » Eliminando el Desorden - Introducción

Navigation

Recently Viewed

This feature requires Javascript to be enabled.
 

Hemos visto el código desde el punto de vista del compilador, y cómo perfilar código para encontrar las zonas problemáticas. Esta información es buena, pero si aún no está satisfecho con el rendimiento de cierto código, seguro piensa qué más hacer con él. Una posibilidad es que su código sea demasiado obtuso para que el compilador pueda optimizarlo apropiadamente: código excesivo, excesiva modularización o incluso "mejoras" debidas a procesos de optimización previos pueden desordenar su código y confundir a los compiladores. Se considera desorden a todo aquello que contribuye al tiempo de ejecución sin contribuir a la respuesta. Viene en dos formas:

Cosas que contribuyen a la sobrecarga

Llamados a subrutinas, referencias indirectas a memoria, pruebas adentro de bucles, pruebas excesivas, conversiones de tipos, variables preservadas innecesariamente

Cosas que restringen la flexibilidad del compilador

Llamados a subrutinas, referencias indirectas a memoria, pruebas adentro de bucles, apuntadores ambiguos

No se trata de un error que algunos elementos aparezcan repetidos en ambas listas. Tanto la invocación de subrutinas como el uso de sentencias condicionales adentro de bucles pueden perjudicarlo, al tomar mucho tiempo y generar barreras — lugares del programa donde las instrucciones que aparecen antes no pueden entremezclarse de forma segura con las instrucciones que aparecen después, al menos no sin un gran cuidado. El objetivo de este capítulo es mostrarle cómo eliminar el desorden, de forma que pueda reestructurar todo aquello que está mal y lograr la ejecución más rápida posible. Hemos eliminado unos cuantos tópicos que debieran estar aquí, especialmente aquellos relativos a referencias a memoria, y los colocamos en capítulos posteriores donde se tratan como temas separados.

Antes de comenzar, queremos recordarle: conforme busca usted formas de mejorar lo que tiene, mantenga ojos y mente abiertos a la posibilidad de que pueda existir una manera fundamentalmente mejor de hacer algo -una técnica de ordenación más eficiente, un generador de números aleatorios, etc. Un algoritmo diferente puede aportarle mayor incremento de velocidad que afinar el existente. Analizar tales algoritmos está más allá del alcance de este libro, pero lo que estamos discutiendo aquí debe ayudarle a reconocer el "buen" código, o ayudarle a codificar un nuevo algoritmo que le de el mejor rendimiento.

Content actions

Download module as:

Add module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks