Skip to main content

Refactorización para la sostenibilidad ambiental

chat de Copilot puede sugerir formas de hacer que el código sea más respetuoso con el medio ambiente.

El código que es ineficaz en su uso de recursos computacionales puede dar lugar a un mayor consumo energético, lo que tiene un impacto negativo en el entorno. Entre los ejemplos de este código se incluyen algoritmos con alta complejidad de tiempo, uso excesivo de memoria y procesamiento innecesario.

chat de Copilot pueden ayudar a identificar algoritmos ineficaces o operaciones que consumen muchos recursos en el código que contribuyen a un mayor consumo energético. Al sugerir alternativas más eficientes, puede ayudar a reducir el impacto ambiental de su software.

Escenario de ejemplo

El siguiente código de Python lee un archivo de texto grande y cuenta el número de líneas. Sin embargo, carga todo el archivo en memoria, lo que puede ser ineficaz para archivos grandes y provocar un mayor consumo de energía. También cuenta manualmente las líneas en lugar de usar funciones integradas.

def count_lines(filename):
    with open(filename, 'r') as f:
        data = f.read()
        lines = data.split('\n')
        count = 0
        for line in lines:
            count += 1
        return count

print(count_lines('largefile.txt'))

Ejemplos de indicaciones

Este es un mensaje de ejemplo que puede usar con chat de Copilot para refactorizar el código anterior para mejorar la sostenibilidad ambiental:

Copilot prompt
Refactor this code to improve its environmental sustainability by reducing memory usage and computational overhead.

Respuesta de ejemplo

Nota:

Las respuestas del chat de Copilot no son deterministas, por lo que puede obtener una respuesta diferente a la que se muestra aquí.

Copilot sugiere usar una expresión de generador para leer el archivo línea por línea, lo cual reduce el uso de memoria. También usa la función integrada sum para contar las líneas de forma más eficaz.

def count_lines(filename):
    with open(filename, 'r') as f:
        return sum(1 for _ in f)  # Efficiently counts lines without loading all into memory

print(count_lines('largefile.txt'))

Lectura adicional