lunes, 28 de marzo de 2016

Delphi Parallel Programming Library & Memory Managers

by Steve Maughan

In September 2014 Delphi XE7 was launched. I was excited to try the new Parallel Programming Library (PPL). I thought I’d be able to quickly and easily write code which takes advantage of the processors in my Intel i7 machine. To my dismay the performance improvement were virtually non-existent if there was any memory allocation carried out in parallel. I even brought up the subject on Google+ (see here: https://goo.gl/hWc6Z6). The bottleneck seemed to be with FastMM4. When it was first bundled with Delphi 2006, FastMM4 was a breakthrough in single core memory management. But FastMM4 had not been designed for multi-threaded performance. In my tests the PPL versions of my test routines were slower than the single core versions. I concluded it was wiser to stick with the simpler single core routine, and hope for a solution.

A week ago I stumbled across this thread on Google+, “Why is the FastMM4 development stalled?”. I’d never heard about NexusDB’s memory manager.  Apparently it scales well in a multi-thread environment. Eivind Bakkestuen from NexusDB kindly offered to provide a test copy. So I thought I’d give it a try. I went back to my main application and fired up the parallel map rendering routines of my Sales Territory Mapping application. To my amazement I got a instant speedup of 68% when using the NexusDB memory manager. I was ecstatic! Out of pure interest I then tried the parallel rendering using FastMM4. To my surprise FastMM4 performed equally as well as NexusDB. What has changed since 2014? FastMM4 hadn’t been updated since May 2013. Was it something new with the PPL included with Delphi 10 Seattle? Or was it as a result of Windows 10.  I also noticed the memory manager included with Delphi didn’t perform quite as well as explicitly including FastMM4 at the start of the “dproj” file.

So I set out to create a test and investigate further.

I created a test project (you can download it here). It’s nothing special. The small app creates and destroys lists of small and simple objects. I quickly established there was no speed difference between XE7 and Delphi 10 Seattle applications. I then create six Delphi 10 Seattle versions of the application; a 32 bit and 64 bit version of with the native memory manager, FastMM4 and NexusDB:

  • Speedtest-Native-32.exe
  • Speedtest-FastMM4-32.exe
  • Speedtest-NexusDB-32.exe
  • Speedtest-Native-64.exe
  • Speedtest-FastMM4-64.exe
  • Speedtest-NexusDB-64.exe

Each executable can run in single-core or multi-core mode. You can download the executables here (SpeedTest.zip). I then ran them on four different laptops:

  • Dell XPS 15: Windows 10 2.6 GHz i7-6700HQ
  • HP from 2009: Windows 7 2.2 GHz i7-2670QM
  • HP from 2014: Windows 8.1 2.4 GHz i7-3630QM
  • Surface Book: Windows 10 2.4 GUs i5-6300U

Source

Cómo mejorar el posicionamiento web de tu negocio

En la actualidad, la mayoría de las empresas están presentes en internet, ya sea como instrumento para conseguir nuevos clientes a través de la difusión de información online o como principal canal de ventas gracias al ecommerce.

Los buscadores son fundamentales para acceder a todas estas páginas, por lo que es imprescindible que el usuario lo tenga presente en su negocio. El objetivo de toda empresa y autónomo es conseguir aparecer en los primeros resultados de la búsqueda, sobre todo en Google, el buscador más utilizado por los españoles.

Para esto, es imprescindible el posicionamiento SEO. Es un proceso técnico que busca mejorar la visibilidad de un sitio web en los buscadores. Un buen posicionamiento en la web incrementa la posibilidad de aumentar las ventas de un negocio, ya que los internautas solo visitan las primeras opciones de los buscadores a la hora de necesitar información sobre un tema cualquiera.

Existen diversas compañías expertas en el diseño de estrategias y servicios de marketing que mejorarán el performance de la web, lo que permite facilitar su uso y mejorar su rapidez y su posicionamiento en buscadores.

Para crear una estrategia online el empresario debe seguir una serie de pautas:

1. Conocer a sus competidores y señalar las palabras clave que definen tanto su negocio como a su público objetivo.

2. Optimizar la página web

3. Diseñar una estrategia de desarrollo de enlaces y de estructura de datos, que podrán mejorar el posicionamiento web en búsquedas de su nicho de mercado.

4. Usabilidad web. Es importante que la web brinde una experiencia sencilla y cómoda a los visitantes. 

El marketing es imprescindible para estos pasos a seguir. La contratación de una empresa reconocida y profesional para estas labores mejorará rápidamente la web y su posicionamiento en los buscadores, una situación que permitirá la llegada de nuevos clientes. 

Fuente