#1
|
||||
|
||||
[cpu, i/o, gpu, tcp, hotplug, thermal, etc...]
Antes de nada decir que aun esta en proceso, y que aun hay cosas tanto por traducir como por mejorar, espero que tengais paciencia....muchas gracias!!
El objetivo de este hilo es aprender un poco más acerca de la configuración de los kernels y de sus parámetros. Si queréis ver perfiles pasaros por este otro Hilo!!! Viendo que por estos lugares no tenemos nada referente a las configuraciones de los diferentes governos que vienen en los kernels, me he decidido a terminar con esto y que todo el mundo pueda tener una noción básica al respecto. Fuentes: http://www.htcmania.com/showthread.php?t=360366 http://androidmodguide.blogspot.com.es El hilo está dividido en tres partes (desde aquí se puede ir a cualquiera de ellas): Governors (post actual) -Definicion -Comparativa -Graficas 2.I/O Schedulers(2º post) -Definicion -Comparativa -Graficas 3.Parámetros y ajustes (3er post) 4. Mas configuraciones del Kernel(4º Post) -Hotplugin drivers -Gpu Governors -TCP Algoritms -Gestor Termico -ToolChains Etc... No pretende ser un tutorial, ni un hilo en el que preguntar qué es un governor o un scheduler o para cómo se configura un kernel, etc. Simplemente es una guía para entender y tener claros algunos de los parámetros que nos brindan los kernels para poder configurarlos a nuestros gusto y exprimir al máximo el potencial de los mismos, y de nuestros teléfonos. GOVERNORS ¿Qué son los governors? Los governors son los encargados de gestionar el uso de las frecuencias de la CPU. Dicho de otro modo, es el que decide cuándo utilizar la frecuencia máxima (en el OPO por defecto es de 2.5GHz) para sacar todo el rendimiento de nuestro "bicharraco", las intermedias (2.2, 1.9,1.7,1.5,1.4ghz etc...) o cuándo trabajar al mínimo (300Mhz). Primeramente vamos a hablar de los governors más conocidos, los que suelen incluir la mayoría de los kernels. Un kernel no tiene por que incluir todos estos, eso depende del desarrollador. Son los siguientes:
(Click para mostrar/ocultar)
Categorias: Hay cuatro categorias para los governors. 1) Basados en Ondemand: Trabajan bajo el principio “Aumentar bajo mucha carga(ramp-up on high load)” . El tiempo de ocupacion de la CPU se toma en cuenta para escalar las decisiones y aumentar las frecuencias. Miembros: Ondemand, OndemandX, Intellidemand, Lazy, Lagfree, PegasusQ, HYPER, Wheatley, Hotplug, HotplugX, AbyssPlug, AbyssPlugv2, Nightmare, Sleepy. 2) Basados en Conservative: Trabajan viendo la preferencia del telefono para elegir la velocidad de cpu mas baja posible lo mas frecuentemente posible. Miembros: Conservative, Lionheart, LionheartX 3) Basados en Interactive: Trabajan bajo el principio “escalar la cpu cuando la cpu sale de bucles inutiles(make scaling decision when CPU comes out of idle-loop)” Miembros: Interactive, InteractiveX, Intelliactive, Lulzactive, Luzactiveq, Smartass, SmartassV2, SmartassH3, Brazilianwax, SavagedZen, Dyninteractive. 4) Basados en Categoria "Unique" : Estos no se encuentran en ninguna otra categoría anterior y/o poseen atributos únicos Miembros: Userspace, Powersave, Performance, Min Max, ZZmove, MSM DCVS 5) Basados en categoria "Hybrid" : Estos tienen la mezcla de dos (o mas) comportamientos de governors de Cpu. Miembros: Smartmax, Dancedance, Performance May Cry(PMC), Ktoonservative, KtoonservativeQ Algunas recomendaciones sobre governors Metodo de valoracion: Ideal - Este governor es simplemente el mejor (para la categoría ) , muy recomendable. Muy Bueno - Este governor es muy bueno, se adapta bien para la mayoria de gente. Bueno - Este governor esta bien, pero podria no ser apropiado para todo el mundo. Requiere tunear - Estos governor, requieren tunearlos, no son para principiantes. Si tu kernel, que no la rom, no tiene los cpu governors que están marcados como los "ideal", usa los que estén marcados como "muy bueno". Ademas, si hay mas de un governor marcado como "ideal", elige el que tengas disponible. Si dispones de todos, elige uno XD Para Rendimiento:
(Click para mostrar/ocultar)
Para duración de bateria:
(Click para mostrar/ocultar)
Para equilibrar batería y rendimiento:
(Click para mostrar/ocultar)
Para Juegos:
(Click para mostrar/ocultar)
Otros governors de los que no se habla en esta sección, es porque o ya no se usan o no se adaptan bien a mucha gente, o han sido eliminados de los kernels. Consumo de bateria por governor, numero de miliamperios justos.(Battery Drain)
(Click para mostrar/ocultar)
Preguntas
(Click para mostrar/ocultar)
Última edición por moludo Día 27/03/15 a las 08:38:45 |
Los siguientes 40 usuarios han agradecido a moludo su comentario: | ||
|
#2
|
||||
|
||||
I/O SCHEDULERS (I/O = Imput/Output)
P. “¿Para qué sirve un I/O Scheduler?” R.Reducir al mínimo la latencia de búsqueda del disco duro. Dar prioridad a las operaciones de I/O de algunos procesos. Asignar más espacio en disco para los procesos en ejecución. Garantizar que ciertas peticiones se ejecutan antes de un tiempo límite. Para entenderlo de una forma más simple: el kernel controla los accesos al disco usando un I/O Scheduler (Scheduler = planificador). P. “¿Qué metas persigue cada I/O scheduler para tratar de conseguir un equilibrio?” R.Equidad (que cada proceso tenga su parte asignada de acceso al disco). Rendimiento (tratar de atender las solicitudes que se encuentren en primer lugar, haciendo la búsqueda más rádida). Tiempo real (garantizar que las solicitudes son atendidas en un tiempo dado). I/O SCHEDULERS
(Click para mostrar/ocultar)
I/O schedulers Recomendados: Para uso Diario
(Click para mostrar/ocultar)
Para duracion de Bateria
(Click para mostrar/ocultar)
Para jugar a juegos
(Click para mostrar/ocultar)
Para alto rendimiento(Benchmarking):
(Click para mostrar/ocultar)
For multitasking:
(Click para mostrar/ocultar)
Comparacion I/O Scheduler Rendimiento Global: Mejor<------------------------------------------------------------------------->Peor FIOPS> Noop > ZEN > Tripndroid > SIOplus > SIO > ROW > > VR > Deadline > BFQ > CFQ Rendimiento Multitarea: Menos Apps<------------------------------------------------------------>Muchas Apps Noop < FIOPS < SIO < SIOplus < ROW < Tripndroid < ZEN < Deadline < VR < CFQ < BFQ Duracion de Bateria: Mejor<-------------------------------------------------------------------------> Peor Noop > FIOPS > SIO > SIOplus > ROW > ZEN > Tripndroid > Deadline > VR > CFQ > BFQ Comparacion grafica I/O Schedulers Aqui hay un grafico del rendimiento de los Schedulers. Nota: La nota más alta no significa que sea el mejor Scheduler. Sequential in MB/sec (MAs alto mejor)
(Click para mostrar/ocultar)
Aleatorio en IOPS (Mas alto mejor)
(Click para mostrar/ocultar)
Los siguientes graficos muestran la lectura/escritura por scheduler secuencialmente y aleatoriamente.
(Click para mostrar/ocultar)
==>Recuerda: Esto es un Delta% contra la media al 100%, esto hace que las pequeñas diferencias parezcan grandes. (sobre todo debido a la escala elegida)
(Click para mostrar/ocultar)
Como se lee el grafico? Con valor de media 100%, FIOPS es 109% en lectura secuencial, 116% en escritura secuencial, 102% en lectura aleatoria y 103% en escritura aleatoria. BFQ es 94% en lectura secuencial, 90% en escritura secuencial, 97% en lectura aleatoria y 100% en escritura aleatoria. Que nos muestra esto?? Fiops aqui parece que es el mejor Zen, Noop, Sio y row parecen muy similares Cfq y Vr estan detras en lectura secuencial pero es mejor en escitura secuencial Deadline y Bfq son peores aqui ==> Estos resultados no son definitivos ni mucho menos, y pueden ser muy diferentes segun los telefonos y metodos de medicion. Fuente: http://andrux-and-me.blogspot.com.au...ormance-2.html and http://forum.xda-developers.com/show...3&postcount=85 PREGUNTAS
(Click para mostrar/ocultar)
Última edición por moludo Día 14/03/15 a las 13:46:23 |
Los siguientes 20 usuarios han agradecido a moludo su comentario: | ||
#3
|
||||
|
||||
Parámetros y ajustes
Solo voy a poner éstos para Ondemand, Conservative, SmartassV2, Lulzactive e Interactive ya que son los governors más utilizados. Diferentes governors tendrán diferentes parámetros, pero es fácil entenderlos. Normalmente un governor tendrá: 1. Tiempo/frecuencia de muestreo (Sampling Time/Rate): medido en µs y según la cual la función de muestreo determina la frecuencia para "sondear" y decidir si la misma debe ser reducida o incrementada. Algunos governors tendrán diferentes tiempos de muestreo tanto para aumentar como disminuir. 2. Umbrales (Thresholds): medidos en porcentaje. Cuando la carga de la CPU alcanza este punto, el governor aumenta o disminuye la frecuencia de la misma. Hay muchos otros parámetros, pero todos están relacionados de alguna manera con estos dos, principalmente. Antes de seguir, personalmente, recomiendo el uso de la aplicación NSTools, gratis en la Play Store.
(Click para mostrar/ocultar)
Última edición por moludo Día 25/02/15 a las 17:04:43 |
Los siguientes 21 usuarios han agradecido a moludo su comentario: | ||
#4
|
||||
|
||||
Hotplugging drivers:
- mpdecision (Driver por defecto de Qualcomm para el hotplug) - msm_hotplug (Buena duracion de bateria, hotplug basado en el original de qualcomm hecho por myflux) - intelliplug (Genial para rendimiento,muchas opciones de personalizacion hecho por Faux) - Alucard HotPlug (Un genial driver de hotplug hecho por Alucard) -AutoSMP, un simple y eficiente Driver para el Hotplug (Creado por Mrg666), se encuentra en kernels nexus 4. Los Custom Kernels es posible que lleven sus propios driver Hotplug, pero normalmente se basan en estos. Yo recomiendo jugar con ellos y ver como te responden. El hotplug Alucard parece ser el que mejor rendimiento de bateria da ,Los hotplug por defecto de qualcomm son mejores en rendimiento. Si tu experimentas problemas , manten los ajustes en AUTO. Si quieres experimentar, ten por seguro que experimentaras cambios en la vida de la bateria, tanto a peor como a mejor. Gestor Termico La manera que tienen de gestionar los cores el calor.Cuando activarlos o desactivarlos según la temperatura. Thermald (Stock) Intellithermal(Mejor control que el stock, opcion a cuando activar y que nucleos activar.) GPU governors / Gpu Algorithm GPU governors
(Click para mostrar/ocultar)
Gpu Algorithm
(Click para mostrar/ocultar)
Gestor de Memoria. Ajustes de memoria/cache Intercambio de Zram zRam es un módulo que ayuda a mejorar el desempeño del sistema evitando utilizar la memoria de intercambio en el disco duro (swap) utilizando en su lugar un dispositivo de bloque comprimido en la memoria RAM. Siendo que utilizar memoria RAM es más eficiente y rápido que utilizar memoria de intercambio en el disco duro, zRam permite utilizar la memoria RAM al realizar intercambio/paginación cuando es requerido. Es sin duda una excelente alternativa para equipos antiguos con poco RAM. Limpiador CAche VFS despues de arrancar Esta opcion forzara que se reescriba la cache del sistema basado en la aplicacion usandose para procesos de arranque e inicio. Activalo para un mejor rendimiento de Lectura/Escritura del sistema! Auto FS Writeback Delay Mode esta opción retrasará la reescritura de los bits de sistema de archivos en caché en RAM , mientras que la pantalla está activada ( Activar para un mejor rendimiento @ ligero riesgo de posible pérdida de datos si falla o pérdida repentina de potencia) Kernel Same-Page Merge Intelli-KSM KSM es una característica de-duplicación de memoria de ahorro . la makina KSM escanea periódicamente aquellas áreas de memoria de usuario que se han registrado en él , en busca de páginas de contenido idéntico que pueden ser sustituidos por una única página protegida contra escritura . Es útil en el runtime de android que genera muchas instancias de los mismos datos! Battery Controls Battery Temperature Throttling Esta opción le permite reducir la frecuencia de la CPU para reducir la acumulación de calor durante la carga y cuando la CPU este a tope . Las baterías de iones de litio están optimizadas para funcionar a menos de 55 grados centígrados. Con esto configuraremos a que temperatura exacta queremos que entre una frecuencia mas baja. Protocolos TCP/IP y Algoritmos de control Congestion: TCP / IP es un conjunto básico de protocolos de comunicación utilizados para transferir datos a través de Internet y redes similares. Los paquetes IP son el vehículo que los dispositivos utilizan para transferir datos entre un programa o aplicación y un servicio web. Ellos se componen de una cabecera, que contiene la dirección de origen / destinatario (entre otras cosas), y una carga útil, que contiene los datos reales. TCP, parte de la capa de transporte de Internet, proporciona la comunicación intermedia entre una aplicación y un servidor. Cuando el envío de grandes cantidades de datos de un programa puede emitir una única solicitud a TCP en lugar de dividir los datos en una serie de paquetes IP y peticiones. Debido a la congestión de la red y otros factores de los paquetes IP a menudo se pierden. TCP mantiene la entrega ordenada de paquetes mediante la detección de la pérdida de paquetes, solicitando retransmisión, la reordenación de los datos, y la minimización de congestión de la red. Cuando un host recibe un flujo de paquetes que vuelve a ensamblar los datos en la secuencia que fue enviado originalmente. Una vez que el receptor confrims la solidez de los datos que envía un paquete de reconocimiento para su recuperación, asi evitar la sobrecarga de la conexión entre un programa y uma camtidad de paquetes enviados, debe ocurrir antes de que más paquetes puedan ser enviados o recibidos. Para cada conexión TCP mantiene una ventana de congestión. La ventana de congestión TCP se mantiene por el remitente y se usa para prevenir la red la congestión / sobrecarga debido a la pérdida de paquetes. Cuando lo paquetes se reciben el tamaño de la ventana de congestión TCP aumenta exponencialmente hasta que un tiempo de espera se produce o el receptor alcanza su límite de ancho de banda. Por lo tanto, a medida que más paquetes se reconocieron el tamaño máximo de segmento (especifica el más grande cantidad de datos en un único segmento TCP) de la ventana de congestión se hace más grande; cada vez de ida y vuelta el tamaño máximo de segmento duplica. Un mecanismo llamado "Slowstart" controla el tamaño máximo de segmento de la ventana de congestión TCP. Para evitar que la red algoritmos para evitar la congestión de TCP sobrecarga modifican ventana TCP tamaño ", de comienzo lento", y el umbral de comienzo lento. Por lo tanto, los algoritmos de evitación de la congestión de TCP tienen un impacto significativo en la velocidad de entrega de paquetes entre un programa de aplicación y un servicio de alojamiento web. Descripciones:
(Click para mostrar/ocultar)
Teses de Velocidad Resultados:
(Click para mostrar/ocultar)
Conclusión: Se ha utilizado los algoritmos mas usados y que parecen que obtienen mejores resultados para hacer multiples teses , y PArece ser que "WestWood" es el algoritmo TCP mas prometedor. Los algoritmos recomendados son el "Cubic" y el "WestWood" ya que son los mas estables y eficientes. La navegacion real mostrara pocas diferencias entre algoritmos, por lo que la experiencia de cada uno variara. El cambio de algoritmos TCP no deberia alterar a la duracion de la bateria. Que son las ToolChains?? Que es linaro, o sabermod? Descripciones de diferentes optimizaciones utilizadas en Android. Linaro: Ver http://www.linaro.org/linux-on-arm Hay varios cientos de desarrolladores que trabajan en Linaro. Linaro fusiona cambios de Google y también de GNU.org para optimizar herramientas de compilación que utilizan para optimizar kernels y ROMs.También hacen cambios en el código AOSP para permitir la compilación, ya sea con una versión superior GCC o para una mejor optimización. Linaro siempre está meses por delante de Google.Ejemplo: Google sigue utilizando 4.7.2 mientras Linaro utiliza 4.7.4. Las diferencias con respecto a 4.7.2 y 4.7.4 son, literalmente, miles y miles de líneas de código para hacer herramientas de compilación más optimizadas.Es por esto que muchos desarrolladores eligen la ruta Linaro. Los Benchmarks y la experiencia general del usuario ha demostrado que Linaro hace un mejor trabajo de optimización de Google. Dato Curioso: Ubuntu 14.04 tiene Linaro 4,8 establecido como GCC por defecto actualmente. (Es evidente que hay muchos que le dan crédito a linaro. Deja claro que , No es tan solo una palabra de moda si hasta en Pcs se usa.) SaberMod: Ver Fuente https://github.com/SaberMod SaberMod es un proyecto de menor escala tripulado por sólo unos pocos desarrolladores con el objetivo de mejorar android en todas las formas posibles. Se hace hincapié en mantener las cosas más cercanas a AOSP, y no desviarse tan lejos del sentimiento stock como dice linaro. Aqui los desarrolladores usan la ultima GCC fusionando bases semanales con multiples parchesados sobre AOSP como hace google. Los desarrolladores de SaberMod siempre construyen toolchains con las últimas toolchains internas de Ubuntu y utilizan de todos ellos optimizaciones del GCC posibles para hacer tu ROM mas rápida que nunca! SaberMod también hace uso del sistema completo y todos ellos -O3, Graphite y otros grandes indicadores del GCC para hacer tu ROM / Kernel lo más eficiente posible. Ellos parchean cualquier cosa para Android y su trabajo duro en efecto da sus frutos! Actualmente los benchmarks SaberMod son incluso superiores a los de Linaro. No me creais a mi, prueba cualquier cosa compilada con sabermod tu mismo! No te arrepentirás! Regular Google AOSP Toolchains: ver https://android.googlesource.com/toolchain/gcc Nota: Estas ToolChains no se utilizan normalmente, esto es más por comparar Actualmente las ToolChains de Google, estan desfasadas tienen hasta mas de un año de antiguedad. Y no me creais a mi, descargaros los sources y comprobarlo. Google también parece haber construido su último lote de toolchains en una versión anterior de Ubuntu con GCC 4.6 ó GCC 4.7 como el conjunto de herramientas por defecto del sistema. Incluso una recompilación de su codigo actual Usando las últimas GCC Ubuntu 14.04 , GCC 4.8 o experimental GCC 4.9, aumenta la respuesta global de la UI. Los Benchmarks también se han mejorado ligeramente. Es por esto que es importante aprender a construir tus propias toolchains ya que Google va siempre muy por detrás y se obtiene un mejor rendimiento de tus propias toolchains. Esto no es una falacia !!! Dale una oportunidad y veras la diferencia. Toolchain Optimization Flags: Ver https://gcc.gnu.org/onlinedocs/gcc/O...e-Options.html -O2 vs. -O3 vs -Ofast: Normalmente los kernel de Stock vienen con -O2 como nivel de optimización por defecto.Muchas personas se encontraban a sí mismos haciéndose preguntas del tipo ¿Cómo difiere este nivel de los "O3" o "-Ofast" ¿Es un placebo? Leer este link https://gcc.gnu.org/onlinedocs/gcc/O...e-Options.html sobre las opciones de optimización GCC y encontraras las diferencias entre “-O2”, “-O3” y “-Ofast”. te daras cuenta de que hay muchas optimizaciones nuevas en el -O3 en comparación con el -O2. Desafortunadamente las toolchias de Google 4.7,4.8 no soportan “-O3” ó “-Ofast” (Al menos las toolchain de ARM-EABI no, ni si quiera he perdido mi tiempo con Arm-Androideabi). A si que no es tan solo que sean viejos, si no que ni siquiera tienen la capacidad de optimizar muchas cosas. Normally stock kernels come with -O2 as the default optimization level. Many folks find themselves asking questions like How does this differ from “-O3” or “-Ofast” Is this a placebo? Read this link https://gcc.gnu.org/onlinedocs/gcc/O...e-Options.html about GCC Optimization options and you’ll find out the differences between -O2, -O3, and -Ofast. You’ll notice several more optimizations are added from -O2 to -O3. Unfortunately, Google 4.7/4.8 toolchains don’t even support -O3 or -Ofast (At least the arm-eabi toolchains don’t, I haven’t even wasted my time with arm-androideabi). So they’re not only old but don’t even have the ability to optimize as much either. Graphite: Mira esto https://gcc.gnu.org/wiki/Graphite-4.8. Graphite es un framework para la optimización de memoria de alto nivel utilizando el modelo poliédrico. Los desarrolladores han dicho acerca de la optimización poliédrica: “ Para conseguir un verdadero optimizador poliédrico para Graphite , hemos elegido el Algoritmo “Pluto”. Pluto es un optimizador poliédrico que utiliza una función de costes única para optimizar simultáneamente los datos de localización, paralelismo y enclaustramiento. Ha mostrado buenos resultados en varios Kernel. el Autor principal se ha empleado a fondo para implantarlo de nuevo en IBM XL. Nosotros hemos añadido una implementación de este algoritmo al ISL. El nuevo conjunto de arreglos y parches permite a graphite usar este nuevo optimizador. A pesar de que el parche es un primer borrador y sin duda necesita una puesta a punto para que coincida con los resultados de la aplicación original, es un buen punto de comienzo para un optimizador poliédrico Real en Graphite” Esto fue hace como un año, ahora ya esta totalmente integrado. Si queires saber mas: http://gcc.gnu.org/wiki/Graphite-4.8 Las 3 primeras cosas de las 4 que se querian ya se han conseguido. Opticharging Las ROMs personalizadas al principio tenían espacio limitado para trabajar por lo que Cyanogen introdujo opticharging a la herramienta personalizada de lanzamiento, con el fin de reducir el tamaño de las apk para adaptar más aplicaciones en particiones de sistema de los dispositivos Android originales. El script opticharger deja aparte aplicaciones cerca del final del build y optimiza todos PNGs que se encuentran en ellas. Originalmente este script utilizaba OptiPng el cual es muy bueno y no tiene ninguna perdida de calidad en las compresiones Png pero recientemente he empezado a utilizar PngQuant porque este comprime entre un 30% y un 70% mas, normalmente una media de un 50% mas comprimido. ( PngQuant seguro qeu tiene alguna perdida , pero aun no lo hemos visto.) ( Si queieres leer mas: http://pngquant.org) (Si estas preocupado acerca de la calidad siempre se puede utilizar OptiPNG que comprime sin pérdida de calidad, por lo general los themers utilizan esta opción en lugarde el PNGQuant) Actualmente, CyanogenMod a abandonado el uso del OptiCharger, pero muchas roms aun siguen utilizándolo como SLIM, AOKP, Liquidsmooth, Dirty unicorns, Carbon, Validus, Y otras muchas. Los themers y los desarrolladores de Apps del mismo modo usan estas técnicas para que sus apps o temas vayan más suaves. hacer un 70% más pequeñas laimágeneses hace que la aplicacion sea 3 veces mas rapida y ademas guarda mas RAM. Entiendo que las apks no lo son todo para la velocidad de una apk, pero te sorprenderias el número de Pngs inútiles va dejando google desde Froyo en ellas, y que tu systemUI debe cargar en ram de todas todas. Hay que agradecer a OptiCharging que reduzca del 50%- al 70% de esta carga en la ram , y así conseguir que nuestro SystemUI sea un poco más rápido, al ahorrarte tantos megas en tu ram. ya que no podemos descargar de la ram el SystemUI bien vale la pena el esfuerzo! Mi lema siempre es : cada poquito cuenta ![]() Muchos todavía argumentan que los dispositivos de gama alta no necesitan opticharging porque son lo suficientemente rápidos para manejar estos archivos PNG a tamaño completo. Bien esto es cierto, pero no cambia el hecho de que opticharing hace que sean aún un poco más rápidos y las aplicaiones “optichargeadas” van a hacer usar menos ram. Si no me creéis, probadlo vosotros mismos! Última edición por moludo Día 14/03/15 a las 13:05:08 |
Los siguientes 22 usuarios han agradecido a moludo su comentario: | ||
#5
|
||||
|
||||
Fenomeno
![]() ![]() ![]() También cojo sitio por aquí ![]() Entre tanto que publicais, me estais haciendo mas larga la espera ![]() Huy, veo que has quitado la definición de inglés. Última edición por Bardales Día 22/01/15 a las 13:45:16 |
#6
|
||||
|
||||
Mola!!
Pilló sitio por aquí!! |
Gracias de parte de: | ||
#7
|
||||
|
||||
Cita:
Si porque era un lio de entender, y es basicamente lo que he puesto en castellano. Pero gracias! |
#8
|
||||
|
||||
Cita:
Más que nada es por el tiempo. Ya que a veces es mejor cortar, pegar que darle vueltas y tratar de escribirlo en castellano. Saludos ![]() |
#9
|
||||
|
||||
ya , eso es cierto, pero prefiero entenderlo y tratar de dar yo una explicacion mas entendible. pero gracias!!
|
Gracias de parte de: | ||
#10
|
||||
|
||||
Cita:
![]() |
#11
|
Muy buen tutorial de como elegir la mejor opción. Muchas gracias por las aclaraciones de este post!!!
Este post se merece una chincheta. ![]() |
#12
|
Uff!!! bravo, tremendo post, varias veces he estado divagando por la web, intentando empaparme sobre el tema y nunca me ha quedado tan claro
![]() |
#13
|
Un aporte de la ostia....me lo leeré, no se cuando, con tiempo. De todos modos soy bastante escéptico en cuanto a la efectividad real de estos ajustes.
|
#14
|
||||
|
||||
Aunque milagros no hacen, se nota mejoria.
|
Gracias de parte de: | ||
#17
|
||||
|
||||
Me encanta el post. Expones claramente conceptos bastante dificiles de entender. Yo también apoyo que se ponga una chincheta a este post.
![]() |
#19
|
||||
|
||||
Aun continuo traduciendo etc, iré completando con cosas nuevas etc. Me alegro que sea de ayuda.
Y bundy, como dice dnfuentes, milagros no hace pero se pueden conseguir muy buenos resultados con buenas combinaciónes. Un saludo |
|
#20
|
Bravo, muchas gracias.
Se le podia poner chincheta para que no este por ahi perdido. |
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
Herramientas | |
|
|
Hora actual: 09:44:49 (GMT +2)
HTCMania: líderes desde el 2007