LightningChart JS
LightningChart JS´Â WebGL ±â¹ÝÀÇ ÃÊ°í¼Ó ½Ç½Ã°£ µ¥ÀÌÅÍ ½Ã°¢È Â÷Æ® ¶óÀ̺귯¸®·Î ¾ÐµµÀûÀÎ ¼º´É¿¡ ÁßÁ¡À» µÐ Á¦Ç°ÀÔ´Ï´Ù. ¼º´É Å×½ºÆ®¿¡ ÀÇÇϸé 2D¿Í 3D ºÐ¾ß¿¡¼ ´Ù¸¥ ¾î¶² JS ¶óÀ̺귯¸®µµ µû¶ó ¿Ã ¼ö ¾ø´Â ½ºÆ®¸®¹Ö ¼Óµµ·Î µ¥ÀÌÅ͸¦ ½Ã°¢È ÇÑ´Ù´Â °ÍÀÌ ÀÔÁõµÇ¾ú½À´Ï´Ù. ¼¼»ó¿¡¼ °¡Àå ºü¸¥ JavaScript Â÷Æ® ¶óÀ̺귯¸® ÀÔ´Ï´Ù.
Äڵ带 Áï¼®¿¡¼ ÆíÁýÇÒ ¼ö ÀÖ´Â ¹ÝÀÀÇü ¿¹Á¦
¿©±â¸¦ Ŭ¸¯ÇÏ¸é ¿¹Á¦¸¦ ´õ º¼ ¼ö ÀÖ½À´Ï´Ù
ÀÏ¹Ý µ¥½ºÅ©Å¾ PC¿¡¼ ÇÑ ¼º´É Å×½ºÆ® °á°ú :
- Streaming, scrolling line series: 1 million data points: 60 FPS (repaints / sec)
- Streaming, scrolling area series: 1 million data points: 57 FPS (repaints / sec)
- OHLC candle-sticks: 1 million data points: 57 FPS (repaints / secs)
ÁÖ¿ä ±â´É :
- GPU °¡¼Ó ¹× WebGL ·»´õ¸µ
- È®´ë/Ãà¼Ò, Æд×, µ¥ÀÌÅÍ Ä¿¼ À̵¿°ú °°Àº Á÷°üÀûÀÎ ÅÍÄ¡ ½ºÅ©¸° ¹ÝÀÀ¼º
- 100 °³ ÀÌ»óÀÇ Â÷Æ®¸¦ ·»´õ¸µ ÇÒ ¼ö ÀÖ´Â ´ë½Ãº¸µå ÄÁÆ®·Ñ.
- ¼¹ö ·»´õ¸µ Áö¿ø(ArctionÀÇ @arction/lcjs-headless package »ç¿ë)
- Â÷Æ® À¯Çü : 3D, XY, Heatmaps, Polar, Radar/Spider, Pie/Donut, Funnel, Gauge & Pyramid charts
- XY Â÷Æ® ¿ë ¼±Çü ¹× ·Î±× Ãà
À¯¿ëÇÑ ÂüÁ¶ ¸µÅ© :
¼³Ä¡
1. NPM¿¡¼ ¼³Ä¡ ¹× ¹øµé·¯(Bundler) »ç¿ë
NPM¿¡¼ ¶óÀ̺귯¸® ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÏ°í @arction/lcjs¸¦ ÀúÀåÇÕ´Ï´Ù.
ÀÌ ÆÐÅ°Áö´Â CommonJS¸¦ Áö¿øÇÏ´Â ¸ðµç ¹øµé·¯¿Í ÇÔ²² »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹øµé·¯¿¡ ÀÖ´Â ¸î °¡Áö ¿¹Á¦´Â WebPack, Pacrcel°ú Rollup ÀÔ´Ï´Ù. ÀÌ °ÍÀÌ µ¿ÀÛÇÏ´Â °ÍÀ» º¸·Á¸é LightningChart JS¿¡ ´ëÇÑ getting started video¸¦ È®ÀÎ ÇϽʽÿÀ.
¸ðµç ¿¹Á¦¸¦ ½Ãµå(Seed) ÇÁ·ÎÁ§Æ®·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇØ´ç ÆäÀÌÁöÀÇ ¸ðµç ¿¹Á¦´Â µ¶¸³Çü ÀúÀå¼Ò(Repository)¿¡ ¸¸µé¾îÁ® ArctionÀÇ GitHub¿¡¼ ãÀ» ¼ö ÀÖ½À´Ï´Ù. µ¶¸³Çü ¿¹Á¦ ÀúÀå¼Ò(Repositories)¸¦ ÂüÁ¶ ÇϽʽÿÀ.
2. À¥ÆäÀÌÁö¿¡¼ IIFE ¹øµéÀ» Á÷Á¢ »ç¿ëÇϱâ
¶óÀ̺귯¸®´Â ºê¶ó¿ìÀú Áö¿ø IIFE ¹øµé°ú ÇÔ²² ¹èÆ÷µÇ¸ç ÀÌ ¹øµéÀ» ½ºÅ©¸³Æ® űװ¡ ÀÖ´Â ºê¶ó¿ìÀú¿¡¼ Á÷Á¢ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ArctionÀÇ GitHub¿¡¼ ÀÌ ¸Þ¼Òµå¸¦ ±¸ÇöÇÑ ¿¹¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù. LightningChart JS html »ç¿ë ¿¹¸¦ ÂüÁ¶ ÇϽʽÿÀ.
¸ðµç ¿¹Á¦´Â html ÆäÀÌÁö¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸ÕÀú ´ëÈÇü ¿¹Á¦ Áß¿¡¼ »ç¿ëÇÏ·Á´Â ¿¹Á¦¸¦ ã°í Edit this exampleÀ» Ŭ¸¯ÇÕ´Ï´Ù. ÆäÀÌÁö ÇÏ´Ü¿¡¼ CJS ¹öÆ°À» Ŭ¸¯Çϸé Äڵ尡 IIFE¿Í ȣȯÇϵµ·Ï ÀüȯµË´Ï´Ù. ÀÌ ÈÄ Äڵ带 html ÆäÀÌÁö¿¡ º¹»çÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº LightningChart JS html usage exampleÀ» ÂüÁ¶ ÇϽʽÿÀ.
¶óÀ̼¾½º ¿É¼Ç
ºñ »ó¾÷¿ë Ä¿¹Â´ÏƼ ¶óÀ̼¾½º(Non-commercial community license) :
Ä¿¹Â´ÏƼ ¶óÀ̼¾½º´Â LICENSE ÆÄÀÏÀÇ NPM ÆÐÅ°Áö¿Í ÇÔ²² ¹èÆ÷µÇ¸ç https://www.arction.com/lightningchart-js-eula-community/¿¡¼µµ ãÀ» ¼ö ÀÖ½À´Ï´Ù.
¶óÀ̼¾½º ¾øÀÌ ¶óÀ̺귯¸®¸¦ »ç¿ëÇϸé LightningChart JS ·Î°í¿Í ÇÔ²² Â÷Æ®°¡ ½ÇÇàµË´Ï´Ù. ·Î°í´Â LightningChart JS Á¦Ç° ÆäÀÌÁöÀÇ ¸µÅ©°¡ µË´Ï´Ù.
¶óÀ̼¾½º Å° ¾øÀÌ Â÷Æ®¸¦ ½ÇÇàÇϸé À¯È¿ÇÑ ¶óÀ̼¾½º·Î ½ÇÇàÇÏ´Â °Í¿¡ ºñÇØ ¾à°£ÀÇ ¼º´É ÀúÇÏ°¡ ÀÖ½À´Ï´Ù.
»ó¿ë ¶óÀ̼¾½º(Commercial License)
»ó¿ë ¶óÀ̼¾½º¸¦ https://www.arction.com/lightningchart-js-eula-commercial/¿¡¼ ãÀ» ¼ö ÀÖ½À´Ï´Ù.
Ä¿¹Â´ÏƼ ¶óÀ̼¾½º°¡ ¾Æ´Ñ ´Ù¸¥ ¶óÀ̼¾½º¸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡´Â »ó¿ë ¶óÀ̼¾½º°¡ Àû¿ëµË´Ï´Ù.
°³¹ßÀÚ ¶óÀ̼¾½º(Developer License)
»ó¾÷¿ë °³¹ßÀ» À§ÇØ ÇÊ¿äÇÑ °³¹ßÀÚ ¶óÀ̼¾½º ÀÔ´Ï´Ù. ¶óÀ̼¾½º ¼¹ö·Î ¶óÀ̼¾½º¸¦ È®ÀÎÇϸç ÀÎÅÍ³Ý ¿¬°áÀÌ ÇÊ¿äÇÕ´Ï´Ù. °³¹ßÀÚ º°·Î ¶óÀ̼¾½º°¡ ÇÊ¿äÇÏ¸ç »ç¿ë ¹æ¹ýÀº “Using a license”¸¦ Âü°í ÇϽʽÿÀ. °³¹ßÀÚ Å°¸¦ »ç¿ëÇϸé Â÷Æ®°¡ ÀÛ¾÷ ÁßÀÎ »óÅÂ¿Í µ¿ÀÏÇÏ°Ô µË´Ï´Ù.
¹èÆ÷ ¶óÀ̼¾½º
»ó¾÷¿ë¿¡´Â ¹èÆ÷ ¶óÀ̼¾½º°¡ ÇÊ¿äÇÕ´Ï´Ù. ¹èÆ÷ ¶óÀ̼¾½º´Â °³¹ßÀÚ ¶óÀ̼¾½º¿Í µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î Á¦°øµË´Ï´Ù. »ç¿ë ¹æ¹ý¿¡ ´ëÇؼ´Â “ Using a license”¸¦ ÂüÁ¶ ÇϽʽÿÀ.
¹èÆ÷ ¶óÀ̼¾½º¸¦ »ç¿ëÇÏ°Ô µÇ¸é LightningChart JS ·Î°í ¾øÀÌ Â÷Æ®°¡ µ¿ÀÛÇϸç, “¹èÆ÷ Å×½ºÆ®(Deployment Test)” µµ¸ÞÀÎÀ» Áö¿øÇÕ´Ï´Ù. ¶óÀ̺귯¸®°¡ ½ÇÇà ÁßÀÎ µµ¸ÞÀÎÀÌ ¹èÆ÷ ¶óÀ̼¾½º¿¡ ¸í½ÃµÈ ¹èÆ÷ Å×½ºÆ® µµ¸ÞÀΰú ÀÏÄ¡Çϸé Â÷Æ® »ó´Ü¿¡ “¹èÆ÷ Å×½ºÆ®” ¹®±¸°¡ Ç¥½ÃµË´Ï´Ù. ÇØ´ç µµ¸ÞÀÎÀÌ ÀÛ¾÷ ȯ°æ »ç¿ëÀ» Áö¿øÇÑ´Ù´Â ÀǹÌÀÌ¸ç ¶óÀ̼¾½º¸¦ º¯°æÇÏÁö ¾Ê°í »ý»ê ¹öÀüÀ¸·Î ÀüȯÇÒ ¼ö ÀÖ½À´Ï´Ù.
¾ÖÇø®ÄÉÀÌ¼Ç ¹èÆ÷ ¶óÀ̼¾½º(Application Deployment License)
À¥ÀÌ ¾Æ´Ñ ´Ù¸¥ Ç÷§Æû¿¡ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¹èÆ÷ÇÏ·Á¸é ¾ÖÇø®ÄÉÀÌ¼Ç ¹èÆ÷ ¶óÀ̼¾½º°¡ ÇÊ¿äÇÕ´Ï´Ù. ¾ÖÇø®ÄÉÀÌ¼Ç ¹èÆ÷ ¶óÀ̼¾½º »ç¿ë¹ý¿¡ ´ëÇؼ´Â “Using a license”¸¦ ÂüÁ¶ ÇϽʽÿÀ.
¾ÖÇø®ÄÉÀÌ¼Ç ¹èÆ÷ ¶óÀ̼¾½º¸¦ »ç¿ëÇÏ´Â °æ¿ì, LightningChart JS ·Î°í ¾øÀÌ Â÷Æ®°¡ µ¿ÀÛÇÕ´Ï´Ù.
LightningChart JS ¹Ù·Î ½ÃÀÛÇϱâ
JavaScript Package
¶óÀ̺귯¸®´Â ´ÜÀÏ javascript module·Î ¹èÆ÷µË´Ï´Ù. ³»º¸³»±â´Â µÎ °¡Áö ¹üÁÖ·Î ±×·ìÈ ÇÒ ¼ö ÀÖ½À´Ï´Ù :
LightningChart JS
Â÷Æ®, ´ë½Ãº¸µå, LegendBoxes µîÀ» ¸¸µå´Âµ¥ ÇÊ¿äÇÑ ¸ðµç lcjs-application¿¡ ÇÊ¿äÇÏ¸ç »ç¿ë¹ýÀº Ç×»ó µ¿ÀÏ ÇÕ´Ï´Ù :
Using a license
LightningChart JS ¶óÀ̼¾½º¸¦ »ç¿ëÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇØ´ç ¶óÀ̼¾½º¸¦ LightningChart¿¡ ÀԷ°ª(argument)À¸·Î Àü´ÞÇØ¾ß ÇÕ´Ï´Ù.
myLicenseStringÀº ¹èÆ÷¿ë °³¹ßÀÚ ¶óÀ̼¾½º³ª ¹èÆ÷¿ë ¹èÆ÷ ¶óÀ̼¾½º°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.
LightningChart JS ¾ÖÇø®ÄÉÀÌ¼Ç ¹èÆ÷ ¶óÀ̼¾½º¸¦ »ç¿ëÇÏ·Á¸é ¶óÀ̼¾½º Á¤º¸¸¦ °®°í ÀÖ´Â °´Ã¼µµ Àü´ÞÇØ¾ß ÇÕ´Ï´Ù.
licenseInformationObject´Â AppDeploymentLicenseInformation ÀÎÅÍÆäÀ̽º¸¦ ½ÇÇàÇÏ´Â °´Ã¼ÀÔ´Ï´Ù.
°³º° ³»º¸³»±â À¯Çü, ¼ÂÆÃ, À¯Æ¿¸®´Ï, ºô´õ µîµî
LightningChart JS¿¡´Â Â÷Æ® À¯Çü°ú ±¸¼º ¹× »óÈ£ ÀÛ¿ë, ´Ù¾çÇÑ UI ¿ä¼Ò µîÀ» ±¸ÃàÇϱâ À§ÇÑ ³»º¸³»±â ¼¼Æ®¸¦ Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù. ÇÊ¿ä¿¡ µû¶ó lcjs¿¡¼ °¡Á®¿Ã ¼ö ÀÖ½À´Ï´Ù.
LightningChart JS API Documentation¿¡ ÀÖ´Â ¸ðµç Ç׸ñÀ» ÀÌÀü ¿¹Á¦¿¡¼¿Í °°ÀÌ °¡Á®¿Ã ¼ö ÀÖ½À´Ï´Ù.
¿¹Á¦ ¿ë¹ý
Performanc Tests and Comparisons
README.md
¿Áöµµ(Heat map) Â÷Æ®ÀÇ ½Ã°¢È¸¦ ´Ù¸¥ JavaScript Â÷Æà ¶óÀ̺귯¸®¿Í LightningChart JS ¼º´ÉÀ» ºñ±³ÇÑ °ø½Ä ÀÚ·á ÀÔ´Ï´Ù.
2021³â 3¿ù 9ÀÏ ¾÷µ¥ÀÌÆ® : LightningChart JS 3.1 ¹öÀüÀÇ ¼º´ÉÀÌ Çâ»óµÇ¾î ÀÌÀü °á°ú¸¦ ¿ÏÀüÈ÷ ¹Ù²Ù¾î ³õ½À´Ï´Ù. °á°ú ºÐ¼®À» °Ç³Ê ¶Ù·Á¸é ¿©±â¸¦ Ŭ¸¯ ÇϽʽÿÀ.
Heat mapsÀº 2Â÷¿øÀ» X¿Í Y¿¡ ¸ÅÇÎÇÏ°í Á¦ 3ÀÇ µ¥ÀÌÅÍ Â÷¿øÀ» ±â¹ÝÀ¸·Î À§Ä¡¸¦ »öÀ¸·Î Ç¥½ÃÇÏ¿© 3D µ¥ÀÌÅÍ ½Ã°¢È¿¡ »ç¿ëµË´Ï´Ù.
µ¥ÀÌÅÍ ½Ã°¢È¿¡ ÀÖ¾î Heat maps ³»¿¡´Â ¿©·¯ ÇÏÀ§ ±×·ìÀÌ ÀÖÀ¸¸ç, À̹ø ºñ±³´Â 2D Grid Heat maps¿¡ ÁßÁ¡À» µÓ´Ï´Ù.
¶ÇÇÑ, 2D Grid heat mapsÀº ¾ÖÇø®ÄÉÀ̼ǿ¡ µû¶ó ÃÖ¼Ò 3°¡Áö À¯ÇüÀ¸·Î ºÐ·ùÇÒ ¼ö ÀÖ½À´Ï´Ù.
1. Static heat maps : µ¥ÀÌÅÍ ¼¼Æ®¸¦ ·ÎµåÇÏ¿© »ö»ó Á¶È¸ Å×À̺í(Look-up Table) ±â¹ÝÀ¸·Î HeatmapÀ» ·»´õ¸µ ÇÕ´Ï´Ù.
2. Refreshing heat maps : µ¥ÀÌÅÍ¿¡ ½Ã½Ã°¢°¢À¸·Î ¸Å¿ì ºó¹øÇÏ°Ô(»õ·Î °íħ ºóµµ) º¯È°¡ ÀÏ¾î ³³´Ï´Ù. ¿¹¸¦ µé¾î, ³¯¾¾ µ¥ÀÌÅÍ ½Ã°¢È¿¡ »ç¿ëÇÕ´Ï´Ù.
3. Appending heat maps : µ¿Àû µ¥ÀÌÅÍÀÌÁö¸¸ ÀÌÀü µ¥ÀÌÅÍ´Â Áö¿öÁöÁö ¾Ê°í »õ µ¥ÀÌÅÍ°¡ ÀÔ·ÂµÉ ¶§ À̵¿ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ¿Àµð¿À ¸ð´ÏÅ͸µ°ú ºÐ¼®(Spectorgrams)¿¡ »ç¿ëÇÕ´Ï´Ù.
¿©±â¿¡¼´Â ¸ðµç ´Ù¾çÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀÇ JavaScript Â÷Æ®¸¦ Å×½ºÆ® ÇÕ´Ï´Ù.
´ÙÀ½ Â÷Æ® ¶óÀ̺귯¸®¸¦ Å×½ºÆ® Çß½À´Ï´Ù :
À̹ø Å×½ºÆ®¿¡¼ °æÀï¾÷üÀÇ Á¤º¸´Â ¹àÈ÷Áö ¾Ê½À´Ï´Ù.
Benchmark Å×½ºÆ®
ÂüÁ¶ÇÑ ¸ðµç º¥Ä¡¸¶Å© ¾ÖÇø®ÄÉÀ̼ÇÀÌ ÀÌ °÷¿¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù :
º¥Ä¡¸¶Å© Á¤º¸ :
- Date : 03.09.2021
- OS : Windows 10
- CPU : Ryzen 9 5900X
- GPU : RTX 3080
- RAM : 32 GB
- Browser : Chrome & Firefox (Çâ»óµÈ Á¡¼ö¸¦ º¸¿©ÁÝ´Ï´Ù)
Å×½ºÆ®ÇÑ Heat maps Ä÷º¼Ç¿¡¼ ´Ù¾çÇÑ ¼º´É ¼öÄ¡¸¦ ¼öÁýÇÏ¿© JavaScript Â÷Æ®ÀÇ ¼º´ÉÀ» ÃøÁ¤ÇÕ´Ï´Ù. Heatmaps Â÷¿øÀº ¿°ú ÇàÀÇ ¼ö·Î ÁöÁ¤µË´Ï´Ù : ¿¹, “100x100”(10,000 µ¥ÀÌÅÍ Æ÷ÀÎÆ®)
Static heat maps
Static heat maps ¾ÖÇø®ÄÉÀ̼ÇÀÇ JavaScript Â÷Æ® ¼º´ÉÀ» ´ÙÀ½ Ç׸ñÀ¸·Î ÃøÁ¤ÇÕ´Ï´Ù :
- Â÷Æ®´Â ·»´õ¸µÀÌ µÇ´Â°¡ ? ±×·¸Áö ¾ÊÀº °æ¿ì, ½ÇÆÐÇÑ °ÍÀ¸·Î °£ÁÖÇÕ´Ï´Ù.
- ·Îµù ¼Óµµ. Â÷Æ® ½ÃÀÛºÎÅÍ Heat maps Â÷Æ®°¡ Ŭ¶óÀ̾ðÆ®¿¡ ¿ÏÀüÈ÷ Ç¥½ÃµÉ¶§±îÁöÀÇ ½Ã°£(ÃÊ)ÀÔ´Ï´Ù.
´ÙÀ½ Â÷Æ®´Â Static HeatmapsÀÇ º¥Ä¡ ¸¶Å© °á°ú¸¦ ½Ã°¢ÈÇÑ °ÍÀÔ´Ï´Ù.
XÃàÀ» µû¶ó ´Ù¾çÇÑ Å×½ºÆ®(µ¥ÀÌÅÍÀÇ ¾ç Áõ°¡)¸¦ Ç¥½ÃÇÕ´Ï´Ù.
YÃàÀº ·Îµù ¼Óµµ ÃøÁ¤ÇÑ °ÍÀ̸ç Y À§Ä¡°¡ ³ôÀ»¼ö·Ï ´õ ºü¸£°í ´õ ³ªÀº °á°ú¸¦ ÀǹÌÇÕ´Ï´Ù. ÁÙÀÌ ³ªÅ¸³ªÁö ¾ÊÀ¸¸é Å×½ºÆ®°¡ ½ÇÆÐ ÇÏ¿´À½À» ÀǹÌÇÕ´Ï´Ù.
XÃàÀ» µû¶ó ±×·ÁÁø ¼±ÀÇ ¹üÀ§´Â JavaScript Â÷Æ® ¶óÀ̺귯¸®°¡ ó¸®ÇÒ ¼ö ÀÖ´Â Static Heatmaps µ¥ÀÌÅÍ ¾çÀÇ À¯È¿ ¹üÀ§¸¦ Á¤ÀÇÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, LightningChart JS V3.1Àº 35000x35000ÀÇ Static Heatmaps µ¥ÀÌÅ͸¦ ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Heat Map »õ·Î °íħ ¹× Ãß°¡(Refreshing and Appending heat maps)
µ¿Àû Heat maps ¾ÖÇø®ÄÉÀ̼ÇÀÇ JavaScript Â÷Æ® ¼º´ÉÀº ´ÙÀ½ Ç׸ñÀ¸·Î ÃøÁ¤ÇÕ´Ï´Ù.
- ÃÊ´ç ÇÁ·¹ÀÓ(FPS). µ¥ÀÌÅÍ ¼¼Æ®°¡ »õ·Î °»½ÅµÇ´Â ÃÊ´ç Ƚ¼ö(Æò±Õ) ÀÔ´Ï´Ù. ÇÁ·¹ÀÓ °ªÀº ÀϹÝÀûÀ¸·Î 0¿¡¼ 60 »çÀÌÀ̸ç 10 ¹Ì¸¸Àº ´«¿¡ ¶ç°Ô ³ª»Û ¼º´ÉÀ» ³ªÅ¸³À´Ï´Ù.
- CPU »ç¿ë·®(%). Browser ¸ÞÀÎ ½º·¹µå CPU »ç¿ë·®À¸·Î °ªÀÌ Å©¸é(>50%)Àº À¥ ÆäÀÌÁöÀÇ ³ª¸ÓÁö ºÎºÐ¿¡ ´ëÇÑ Àü·Â »ç¿ëÀÌ ¸¹°í ó¸® ´É·ÂÀÌ ³·´Ù´Â °ÍÀ» ¸»ÇÕ´Ï´Ù. CPU »ç¿ë·®ÀÌ 100%¿¡ °¡±î¿öÁö¸é À¥ ÆäÀÌÁö ¼º´É°ú »óÈ£ ÀÛ¿ëÀÌ ±Þ°¨Çϱ⠽ÃÀÛÇÕ´Ï´Ù.
- ÃÖ´ë Heatmaps µ¥ÀÌÅÍ ¾ç. FPS¿¡¼ ÆÄ»ýµÈ °ÍÀ¸·Î, >10FPS·Î À¯ÁöÇÒ ¼ö ÀÖ´Â ÃÖ´ë µ¥ÀÌÅÍ ¾çÀÔ´Ï´Ù.
´ÙÀ½ Â÷Æ®´Â Á¡Á¡ µ¥ÀÌÅÍ ¾çÀÌ ´Ã¾î³ª´Â ½Ç½Ã°£ Heat maps ¾ÖÇø®ÄÉÀÌ¼Ç »óÀÇ ´Ù¾çÇÑ ¶óÀ̺귯¸® ¼º´ÉÀ» ½Ã°¢È ÇÕ´Ï´Ù.
¸¶Áö¸· ¸·´ë Â÷Æ®´Â ¶óÀ̺귯¸®°¡ ¸¸Á·½º·¯¿î ¼º´ÉÀ¸·Î µ¿ÀÛÇÒ ¼ö ÀÖ´Â ÃÖ´ë Heat maps Å©±â¸¦ ³ªÅ¸³À´Ï´Ù. ¿¹¸¦ µé¾î, LightningChart JS V3.1Àº 3000x3000(»õ·Î °íħ) ¹× 14000x14000(Ãß°¡)±îÁö Àß µ¿ÀÛÇÏ¿´½À´Ï´Ù.
Heat maps »õ·Î °íħ °á°ú
ÀÌ Å×½ºÆ®¿¡¼ º¸ÀÌ´Â Heat maps µ¥ÀÌÅÍ´Â °¡´ÉÇÑ »¡¸® ¾÷µ¥ÀÌÆ® µË´Ï´Ù.
Heat maps °á°ú Ãß°¡
ÀÌ Å×½ºÆ®¿¡¼´Â ½Ç½Ã°£ µ¥ÀÌÅ͸¦ Heatmaps·Î ½ºÆ®¸®¹Ö ÇÏ¿© °¡´ÉÇÑ ÇÑ »¡¸® Ç¥½ÃÇÕ´Ï´Ù. ¸ðµç »õ·Î °íħ »çÀÌ¿¡ 1°³ÀÇ ¿ÀÌ Ãß°¡µË´Ï´Ù.
Å×½ºÆ® °á°ú ºÐ¼®
Static heatmaps
Heat mapsÀÇ Å©±â°¡ ÀÛÀ¸¸é(ÃÑ µ¥ÀÌÅÍ »ùÇà 10,000 °³ ¹Ì¸¸) ·Îµù ¼Óµµ¿¡ Â÷ÀÌ°¡ °ÅÀÇ ¾ø½À´Ï´Ù.
ÇÏÁö¸¸, 500x500 ÀÓ°è °ªÀ» ÅëÈÇÑ ÈÄ Çϵå¿þ¾î °¡¼Ó ¶óÀ̺귯¸® ¼ÓµµÀÇ Â÷ÀÌ´Â ºÐ¸íÇÕ´Ï´Ù. ´Ù¸¥ JavaScript Â÷Æ® ¶óÀ̺귯¸® º¸´Ù Æò±Õ 10¹è ÀÌ»ó ºü¸¨´Ï´Ù.
´õ ³ª¾Æ°¡¼, ´Ù¸¥ °æÀï Á¦Ç°Àº ¾öû³ ¾çÀÇ µ¥ÀÌÅ͸¦ ´õ ÀÌ»ó ó¸®ÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ¸ðµÎ Å»¶ôÇÏ°í, LightningChart JS V3.1¸¸ 35000x35000(10¾ï µ¥ÀÌÅÍ Æ÷ÀÎÆ® ÀÌ»ó !!)±îÁö ²ÙÁØÈ÷ Áõ°¡ÇÕ´Ï´Ù.
LightningChart JS V3.1Àº 1¾ï 7õ¸¸ µ¥ÀÌÅÍ Æ÷ÀÎÆ®°¡ Æ÷ÇÔµÈ 13000x13000ÀÇ Heat mapsÀ» 5ÃÊ ¸¸¿¡ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ´Â Çϵå¿þ¾î °¡¼ÓÀÌ ¾ø´Â Æò±Õ °æÀï Á¦Ç°º¸´Ù 395¹è ´õ ¸¹Àº µ¥ÀÌÅÍÀÌ°í, °¡Àå ±ÙÁ¢ÇÑ Çϵå¿þ¾î °¡¼Ó °æÀï Á¦Ç°º¸´Ù 20¹è ´õ ¸¹Àº µ¥ÀÌÅÍ ÀÔ´Ï´Ù.
»ç¿ë °¡´ÉÇÑ Heat maps Ä¡¼ö ¹üÀ§´Â ½ÇÁ¦ ¾ÖÇø®ÄÉÀ̼ǿ¡¼ ¸Å¿ì Áß¿äÇÕ´Ï´Ù. ÃæºÐÇÏÁö ¾Ê°Ô µÇ¸é µ¥ÀÌÅ͸¦ ´Ù¿î »ùÇøµÇØ¾ß ÇϹǷΠÁ¤¹Ðµµ°¡ ¼Õ½ÇµÇ±â ¶§¹®ÀÔ´Ï´Ù ! ÀÌ·¸°Ô µÇ¸é ¸¹Àº °æ¿ì¿¡¼ ´ë´ÜÈ÷ ¶Ù¾î³ ¼º°ú¸¦ º¸ÀÌ°Ô µË´Ï´Ù.
ÀÌ º¥Ä¡¸¶Å© Å×½ºÆ®¿¡¼ º¼ ¼ö ¾ø´Â ¶Ç ´Ù¸¥ ¿ä¼Ò´Â Ä¿¼¿Í È®´ë/Ãà¼Ò¿Í °ü·ÃµÈ ¼º´É ÀÔ´Ï´Ù. ¾î¶² À¥ Â÷Æ®¿¡¼µµ À̸¦ ´ç¿¬ÇÏ°Ô ¿©±æ ¼ö´Â ¾øÁö¸¸, ¾Æ·¡ ªÀº Ŭ¸³ ¿µ»ó¿¡¼ Heat mapsÀÇ Å©±â°¡ LightningChart JS µ¿ÀÛ Ç°Áú¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â´Ù´Â °ÍÀ» º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù.
½Ç½Ã°£ Heat maps(Real-time heat maps)
Heat maps ¾ÖÇø®ÄÉÀ̼ÇÀ» »õ·Î °íÄ¡°í Ãß°¡ÇÏ´Â °æ¿ì, Çϵå¿þ¾î °¡¼ÓÀ» ÇÏÁö ¾Ê´Â Â÷Æ®´Â Heat maps Å©±â°¡ 50x50 Á¤µµ¸¸ ³Ñ´õ¶óµµ µ¿ÀÛÇÏÁö ¾Ê½À´Ï´Ù.
ÀÌ·± Á¾·ùÀÇ ¶óÀ̺귯¸®´Â FPS°¡ 5-10 Á¤µµ·Î °ïµÎ¹ÚÁúÄ¡°í, 25x25 Heat maps(ÃÑ µ¥ÀÌÅÍ »ùÇà 125°³)¿¡¼µµ °¡¿ë CPU Àü·ÂÀ» 100% »ç¿ëÇÕ´Ï´Ù.
½ºÆ®·¹½º Å×½ºÆ®¿¡¼ »õ·Î °íħ(Refreshing)À» Çϸé, ´Ù¸¥ Çϵå¿þ¾î °¡¼Ó Â÷Æ®µµ µû¶ó°¥ ¼ö ¾ø´Ù´Â°Ô ¸íÈ®ÇØÁý´Ï´Ù. Æò±Õ 3¹è Á¤µµ ´À¸®°Ô µ¿ÀÛÇÏ°í Heat maps Å©±â°¡ 3000x3000À» ÃÊ°úÇÏ¸é °á±¹ Ãæµ¹ÇÏ°Ô µË´Ï´Ù. ÀÌ Á¤µµ ¼öÁØ¿¡¼ µ¥ÀÌÅÍ°¡ º¯°æµÇ´Â ¾çÀ» À¥ ºê¶ó¿ìÀú¿¡¼ °ü¸®Çϱ⿡´Â ³Ê¹« Å©Áö¸¸, LightningChart JS´Â 10000x10000 ±Ô¸ðÀÇ Heat maps(1¾ï µ¥ÀÌÅÍ Æ÷ÀÎÆ® !!)±îÁö Ãæµ¹ ¾øÀÌ °è¼Ó À¯ÁöÇØ ³ª°©´Ï´Ù. ÀÌ ¶§ Â÷Æ®´Â 1KHz »ùÇà ¼ÓµµÀÇ 100,000 °³ µ¥ÀÌÅÍ ¼Ò½º¿Í µ¿ÀÏÇÏ°Ô µ¥ÀÌÅ͸¦ ¼ö½ÅÇÕ´Ï´Ù.
ÇÏÁö¸¸, LightningChart JS¸¦ ´Ù¸¥ Â÷Æ®º¸´Ù µ¸º¸ÀÌ°Ô ¸¸µå´Â °ÍÀº ½ºÆ®·¹½º Å×½ºÆ®¸¦ ÇÒ ¶§ ÀÔ´Ï´Ù.
°á°ú¸¦ º¸¸é, LightningChart JS´Â Heat maps Ãß°¡ ½Ã¿¡ ¸ðµç ÀÌÀü µ¥ÀÌÅÍ ¼¼Æ®¸¦ ¾÷µ¥ÀÌÆ® ÇÒ ÇÊ¿ä°¡ ¾ø±â ¶§¹®¿¡ ¼º´ÉÀÇ ÀÌÁ¡À» ¾òÀ» ¼ö ÀÖ°Ô µÊÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù ; °¡Àå ±ÙÁ¢ÇÑ Çϵå¿þ¾î °¡¼ÓÀÇ °æÀï Á¦Ç°Àº 1000x1000 ¼öÁØ¿¡¼ Ã߶ôÇÏÁö¸¸, LightningChart JS´Â µ¥ÀÌÅÍ ¾çÀÇ Áõ°¡¿¡ ¿µÇâÀ» ¹ÞÁö ¾Ê´Â °Íó·³ º¸ÀÌ¸é¼ ¹«·Á 115 FPSÀÇ ¾öû³ ¼Óµµ·Î 14000x14000 ±Ô¸ðÀÇ Heat maps(1¾ï 9õ 6¹é¸¸ °¡½Ã µ¥ÀÌÅÍ Æ÷ÀÎÆ® !!) ¸¦ ó¸®ÇÕ´Ï´Ù. ¶ÇÇÑ, ³î¶ó¿î °ÍÀº CPU »ç¿ë·®ÀÌ 46% ¹Û¿¡ µÇÁö ¾ÊÀ¸¸ç, ÀÌ°ÍÀº °æÀï Á¦Ç°ÀÌ 25x25¿¡¼ ÇÊ¿äÇÑ »ç¿ë·®º¸´Ù ÀûÀº ¼öÁØÀÔ´Ï´Ù.
ÀÌ Å×½ºÆ®¿¡¼ ³ª¿Â ¼º´ÉÀÇ Â÷ÀÌ´Â Á¤¸» ¾î¸¶¾î¸¶ÇÕ´Ï´Ù. µ¥ÀÌÅÍ ¾ç°ú FPS¸¦ ¼±ÇüÀ¸·Î ºñ±³Çϸé LightningChart JS´Â Çϵå¿þ¾î °¡¼ÓÀÌ ¾ø´Â Æò±Õ Â÷Æ®º¸´Ù 13,800¹è ´õ È¿À²ÀûÀÌ°í, °¡Àå ±ÙÁ¢ÇÑ Çϵå¿þ¾î °¡¼ÓÀÇ °æÀï Á¦Ç°º¸´Ù´Â 835¹è ´õ È¿À²Àû ÀÔ´Ï´Ù.
¸Î´Â ¸»
LightningChart JSÀÇ ¼º´É¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº À¥»çÀÌÆ®¸¦ ÂüÁ¶ÇϽʽÿÀ.
º¥Ä¡¸¶Å© Å×½ºÆ® Çغ¸±â
º¥Ä¡¸¶Å© ¾ÖÇø®ÄÉÀ̼ǰú ¸ðµç °ü·Ã ¸®¼Ò½º´Â bench/ Æú´õ¿¡ ÀÖ½À´Ï´Ù.
Hosting development server
npm i --global http-server
http-server
º¥Ä¡¸¶Å© »öÀÎ ÆäÀÌÁö´Â ºê¶ó¿ìÀú(¿¹, Google Chrome)¿¡ URLÀ» Á÷Á¢ ÀÔ·ÂÇÏ¿© localhost:8080/bench ¿¡¼ ãÀ» ¼ö ÀÖ½À´Ï´Ù.
Å×½ºÆ® Parameter´Â bench/config.iife.js ¸¦ ¼öÁ¤ÇÏ¿© ¼³Á¤ÇÕ´Ï´Ù. ¼öÁ¤ ÈÄ¿¡´Â ÀϹÝÀûÀ¸·Î ij½Ã »õ·Î °íħ(Refresh)ÀÌ ÇÊ¿äÇÕ´Ï´Ù(Shift+Ctrl+R·Î ÆäÀÌÁö »õ·Î °íħ).
FPS ¹× ·Îµù ¼Óµµ ¼öÄ¡´Â ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀ¸·Î ÃàÀûµÇ°í Äֿܼ¡ ±â·ÏµË´Ï´Ù.
CPU »ç¿ë·®Àº ºê¶ó¿ìÀú °³¹ßÀÚ µµ±¸¸¦ »ç¿ëÇÏ¿© ¼öµ¿À¸·Î ¸ð´ÏÅ͸µ ÇØ¾ß ÇÕ´Ï´Ù.
SciChart JS¸¦ »ç¿ëÇÏ·Á¸é ·ÎÄÿ¡ ¼³Ä¡µÈ ¶óÀ̼¾½º È®ÀÎ ¼ÒÇÁÆ®¿þ¾î¿Í È°¼º ¶óÀ̼¾½º°¡ ÇÊ¿äÇÕ´Ï´Ù. º¥Ä¡¸¶Å© ¾ÖÇø®ÄÉÀ̼ÇÀº bench/scichart ¿¡¼ ãÀ» ¼ö ÀÖ½À´Ï´Ù. |