Difference between revisions of "VT2017 Grakn.AI"
Qianqian.fu (talk | contribs) |
Qianqian.fu (talk | contribs) |
||
Line 18: | Line 18: | ||
==Synthèse== |
==Synthèse== |
||
− | === |
+ | === Grakn === |
− | + | comme '''Linux, Android, Windows, IOS'''. |
|
− | === |
+ | ===Graql=== |
− | + | Ainsi parmi les applications basées sur ELECTRON il est possible de retrouver : [[https://slack.com/intl/fr-fr Slack]], [[https://discordapp.com/ Discord]], [[https://www.gitkraken.com/ GitKraken]], [[https://code.visualstudio.com/ Visual Studio code]]… |
|
+ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
− | [[File:Icone-gitkraken-from-electron.png|50px|link=https://www.gitkraken.com/]] |
||
− | [[File:Icone-visualStudioCode-from-electron.png|50px|link=https://code.visualstudio.com/]] |
||
=== Fonctionnement === |
=== Fonctionnement === |
Revision as of 23:55, 26 October 2017
Présentation
|
Résumé
GRAKN.AI est la base de données pour AI. C'est une base de données sous la forme d'un graphe de connaissances qui utilise le raisonnement machine pour simplifier les défis de traitement des données pour les applications AI. GRAKN.AI se compose de deux parties: 1. Grakn (base de données) et 2. Graql (la langue).
- Mots clés : base de données, AI
Abstract
GRAKN.AI is the database for AI. It is a database in the form of a knowledge graph that uses machine reasoning to simplify data processing challenges for AI applications. GRAKN.AI is composed of two parts: 1. Grakn (the storage), and 2. Graql (the language).
- Keywords : database, AI
Synthèse
Grakn
comme Linux, Android, Windows, IOS.
Graql
Ainsi parmi les applications basées sur ELECTRON il est possible de retrouver : [Slack], [Discord], [GitKraken], [Visual Studio code]…
Fonctionnement
D’un point de vue plus pratique les applications .
L’une des particularités des applications ELECTRON est leur structure Multi-processus. En effet, l’application est séparée entre le processus principal et les processus de rendu. Le processus dit principal représente la fenêtre qui contiendra les différentes vues, gère les menus et fait le lien avec l’interface graphique native et le système. Le processus principal peut charger les pages web, mais ne peut pas interagir avec d’où l’existence des processus de rendus.
Les processus de rendus correspondent à chaque vue de l’application (page web et ses fichiers JavaScripts). À ces deux types de processus peut aussi s’ajouter les processus dits de calculs. Ces processus n’ont pas d’affichage graphique et permettent de faire de gros calcul en arrière-plan sans pour autant bloquer les interactions de l’utilisateur avec l’application.
Cependant, par définition les processus sont isolés les uns des autres et ne partagent pas de mémoire'. Ainsi, pour permettre le bon fonctionnement, de l’application il faut permettre aux différents processus de communiquer entre eux et de s’échanger des données. Pour cela, les développeurs utilisent un « interprocessus communication » (IPC) basé sur ceux utilisés par le navigateur Chromium. Les IPC peuvent être apparentés à des messages post qui s’échange entre les pages web. Ainsi pour que deux processus puissent communiquer, il suffit d’indiquer un message en JSON, par exemple, et le nom du canal où envoyer le message. L’envoi est bidirectionnel et il peut être asynchrone ou synchrone. Nous venons de voir comment fonctionner de manière globale la librairie ELECTRON, nous allons à présent nous attarder sur ses avantages et ces inconvénients.
Avantages et Inconvénients
Avantages
Comme j’ai pu le préciser plutôt, il existe beaucoup de librairie différente permettant de réaliser des applications multiplate-formes. Ces librairies utilisent des langages différents et ne sont pas toutes open-source. Ainsi, où se situe ELECTRON sur le marché du développement d’applications bureautiques multiplate-formes. Pour cela j’ai décidé de comparer ELECTRON à son concurrent direct NW.js lui aussi une librairie open-source utilisant Chromium et Node.js.
De mon point de vue ELECTRON possède quatre avantages majeurs face à NW.js :
- Le premier avantage d.
- Le deuxième avantage de la librairie sont ses fonctionnalités.
- Le troisième avantage est sa 'simplicité à déployer les applications. Cette simplicité se trouve principalement dans la documentation et la génération des applications pour les différentes plateformes. En effet, il suffit de deux lignes de commande pour générer les applications aussi bien pour Windows, Linux ou MacOS, ce qui est un peu plus complexe avec NW.js. Ensuite.
- Pour argumenter le fait qu’ELECTRON soit mieux documenter que NW.js, je souhaiterais parler du quatrièmes avantage qui est l’activité du projet. ELECTRON (2014) est un projet plus jeune que NW.js(2011) pourtant aujourd’hui ELECTRON est bien plus actif que son prédécesseur :
Une grande communauté de 667 contributeurs contre 92 pour NW.js
Git | |
---|---|
ELECTRON | |
NW.js |
Correction et détection des bugs plus efficace :
ELECTRON | NW.js | |
---|---|---|
Bugs trouvés | 7098 | 5500 |
Bugs Fermés | 6351 | 4071 |
Bugs Ouverts | 747 | 1429 |
Nombre d'années d’existence du projet | 4 | 6 |
Nombre bugs corrigés/an | 1587 | 581 |
Taux de bugs corrigés | 89% | 74% |
Des commits et des releases plus fréquents
ELECTRON | NW.js | |
---|---|---|
Nombre de commit total | 16000 | 3000 |
Nombre de commit moyen par semaine (1er janvier, 17 septembre 2017) | 60 | 5 |
Nombre de lignes moyenne ajouté par mois | 400 | 150 |
Releases | 299 | 144 |
Inconvénients
ELECTRON présente beaucoup d’avantages, mais ses avantages peuvent être masqués par son défaut principal : sa consommation de mémoire vive et son temps d’exécution. Comme expliqué précédemment pour chaque vue html/fenêtre un processus lui est attribuée. En plus des processus, on trouve les processus de communication inter-processus. Ce qui peut rapidement consommer de la mémoire vive et ralentir l’exécution de l’application. De plus la librairie Chromium prend, elle aussi, une partie non négligeable de la RAM. Ainsi ELECTRON est moins performant comparé à son concurrent NW.js et encore moins face à d’autres librairies :
Comparaison (application Hello world simple) | |
---|---|
Comparaison avec d'autres frameworks | |
Comparaison avec d'autres navigateurs |
Ainsi, d'après l'étude, une application ELECTRON se rapproche plus de la consommation d’un navigateur web.
Cependant, après expérimentation personnelle, les applications ELECTRON consomment beaucoup moins de ressources que le navigateur Google Chrome qui le navigateur le plus utilisé dans le monde([Part de marché des navigateurs web dans le monde]).
Nombre de processus | Consommation du processus principale en RAM (Mo) | Consommation total en RAM (Mo) | |
---|---|---|---|
Discord (développé par professionnels) | 3 | 21 | 101 |
Rambox (4 onglets) | 8 | 33 | 941 |
GitKraken (développé par professionnels) | 5 | 100 | 348 |
Google Chrome(une seul page web ouverte) | 7 | 200 | 555 |
Ainsi, je ne pense pas que la consommation de ressources soit un réel problème aux vues de l’augmentation des performances des machines. De plus le nombre d’utilisateurs des applications.
Conclusion
Pour conclure cette présentation, il est possible de dire qu.
Fonctionnement
Utilisation
- Groupe .
- Un serveur .
- N'importe quel .
- Des .
Références
https://grakn.ai/pages/documentation/get-started/quickstart-tutorial.html