Code Monkey home page Code Monkey logo

xhprof.io's Introduction

xhprof.io

GUI to analyze the profiling data collected using XHProf – A Hierarchical Profiler for PHP.

This project is no longer being maintained. If you'd like to take over active maintenance of this project, please contact the project author ([email protected]).

xhprof.io's People

Contributors

armetiz avatar gajus avatar indigofeather avatar pborreli avatar staabm avatar timglabisch avatar vkhramtsov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xhprof.io's Issues

optional db prefix

you cant really integrate xhprof.io in existing software because the tablenames are too common.

i would like xhprof.io to use an optional db_prefix

White screen of death due to PHP namespace type error

Got everything up and running, but when accessing the frontend I get: "PHP message: PHP Fatal error: Call to undefined function ay\mb_substr() in /var/www/html/xhprof.io-master/xhprof/includes/helpers.ay.inc.php on line 173"

Name column in players table is too short

Hi all,

I was just trying out xhprof.io on a Joomla website. I received the following error :

NOTICE: PHP message: PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'eval::/Users/kotuha/Sites/schots/code/components/com_gantry/core' for key 'name'' in /Users/kotuha/Sites/xhprof.io/xhprof/classes/data.php:241
Stack trace:
0 /Users/kotuha/Sites/xhprof.io/xhprof/classes/data.php(241): PDOStatement->execute(Array)
1 /Users/kotuha/Sites/xhprof.io/inc/append.php(25): ay\xhprof\Data->save(Array)
2 [internal function]: {closure}()"
3 {main}"

I checked the code and found no issues. Trouble was just that the name column is set to a length of 100 characters, truncating long names when storing them. Therefor, longer names which reside in the same path will throw this PDO Exception, as their full name is being cut short to a part of the path.

Changing the name column to a VARCHAR(255) solved everything for me and xhprof is now running fine :-)

Thanks for this great interface!

Regards,
Steven

Statements aren't closed

Here's the error:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.' in ...

The fix for this is located here: axyjo/xhprof.io@a43ffd8. Feel free to cherry-pick it in to your repo.

stress connections for big consumers in callgraph

I want to suggest an UX enhancement:

Your call graph looks much cleaner and more easy to read, but i found it tedious to search for the monsters. It would be easier to see, if the arrows vary in size or color to see, where the time / memory consumers are. Highlighting them red is nice, but certainly not enough.

WDYT?

Charset Problem when displaying micro seconds

Hi,

the micro seconds sign: 'µ' is not displayed correctly. See attached screenshot:

xhprofio-charset

After adding a meta charset='utf-8' in the frontend.layout.tpl.php it seems to work correctly.

Default sort order: Descending

What about changing the default sort order (after clicking on a table header) to descending? I'm usually sorting for the heaviest functions.

use statements

instead of escaping every use of PDO it is easier to just declare using it on the third line of php file like so:

use PDO;

Makes the code even more readible.

Big callgraphs are not rendered, PHP-FPM segfaults

Hi,

i have problems with rendering big callgraphs:
e.g. Trying to render callgraphs with 1k+ unique functions does not return any data, because the php-fpm process segfaults:
[17-Mar-2013 01:04:30] WARNING: [pool xhprofio] child 23112 exited on signal 11 (SIGSEGV) after 817.852482 seconds from start

Smaller callgraphs seem to work just fine.

I'm running xhprof.io on Ubuntu 12.04, with nginx and php-fpm.
i have increased diverse server settings (nginx, php-fpm) to not run into any timeouts.

FYI: an example callgraph request, which ran ~6.5 minutes
time curl -I 'https://example.com/?xhprof\[callgraph\]=1&xhprof\[template\]=request&xhprof\[query\]\[request_id\]=48'
HTTP/1.1 500 Internal Server Error
[...]

real 6m37.979s

Fatal error: Cannot redeclare class ay\xhprof\DataException (when using auto_prepend to include prepend file)

Just downloaded and installed xhprof.io via instructions. Data is flowing into the DB, but when I load up the UI, I get the following:

Fatal error: Cannot redeclare class ay\xhprof\DataException in /xhprof.io/xhprof/classes/data.php on line 530

This is occurring because I'm using the auto_prepend feature in php.ini to include the prepend file as per instructions. If I disable that for xhprof.io, it works normally.

This is on xhprof "v0.0.0" downloaded 5 December 2014.

Add CLI support to prepend/append

The prepend and append includes specifically do not support CLI requests. Is that a design choice or merely "noone has written it"? I'm interested in contributing this if there is interest. Any guidelines/tips would be appreciated.

Make use of icons

You obviously face the problem of displaying a lot of different data. I think, you should make a small concept about color or presentation language to help people easier grasp things.

Probably you would use font-awesome to show some icons or have specific colors for specific parts of the application helps. Probably, it is also a good idea to create a space where additional help and documentation could live. Even, if you do not fill them, people can fork and contribute back because they know where to put things.

WDYT?

allow easy ignore of xhprof itself

I know, it is easy to do on your own:

But if i put the prepend file in my php.ini xhprof itself will also get profiled. That may be a not intended behavior and probably confuses first-time users. I would make a small addition to prevent that to happen or at least easy to suppress.

Probably, it would be enough to define something that stops collection the data in the footer, so one could use it from time to time on their wordpress-installation as well. ;)

define('xhprof_profiling_disabled', true);

or something similar. Should be right within xhprof itself and the footer should ask for it in a non-expecting way.

WDYT?

Full call tree / backtrace, as in xdebug profiler + wincachegrind?

I am used to profiling with xdebug, and then use wincachegrind (on wine) to look at the results (I prefer wincachegrind to kcachegrind).
The output from xdebug allows to really inspect the complete call tree. This can be quite hairy big data for long processes, but I find it super useful.
I don't really care about visual representation, I am happy to click through the list to explore the call tree.

Now everyone is telling me to use xhprof instead.

It seems that xhprof does not really distinguish between functions and calls, and does not record a full call tree. It only remembers how often function A calls function B, but not anything about the call trace, or which call instance of A calls which call instance of B.

Is this a correct observation?
Would it be possible to implement the full call tree capture in xhprof?
Thanks!

Missing the xhprof 'Overall Summary' in the xhprof.io UI

Hi,

i can't find the xhprof 'Overall Summary' for a Request ID. In the default xhprof UI there is a short 'Overall Summary' at the top of a report.
There is also an information about the 'Number of Function Calls'. I can't find this information in the xhprof.io web interface.

Trying locally but nothing shows up

Hi !
Just installed on OSX.
UI brings up, but nothing show.

The code seems not to be correctly parsed :

<body class="template-<?=$template['file']?>">
    <div id="navigation">
    <div class="button-filter">Filter</div>
    <div class="button-summary">Summary</div>

    <a href="<?=$e['url']?>" class="<?=$e['class']?>"><?=$e['name']?></a>
    <a href="<?=$e['url']?>" class="<?=$e['class']?>"><?=$e['name']?></a>
    <a href="<?=$e['url']?>" class="<?=$e['class']?>"><?=$e['name']?></a>

</div>

    <?=\ay\display_messages()?>

    <?=$template['body']?>

    <div id="footer">
    <p><a href="http://xhprof.io/" target="_blank">XHProf.io</a> (v<?=VERSION?>) is developed and maintained by <a href="http://anuary.com/gajus" target="_blank">Gajus Kuizinas</a>.<br>This software is distributed under the <a href="https://github.com/anuary/xhprof.io/blob/master/LICENSE" target="_blank">GNU General Public License</a>.</p>
</div></body>

Any help would be appreciate. Your work looks nice :)

Performance issue when viewing a request details

I have a web-page with ~3000 function calls (I mean unique functions) and it takes about a minute to open a request page.
When I walk through functions from request page it also takes significant time (~20 seconds).

My hardware: mac book pro 2 GHz intel core i7, 8gb memory

Allow disabling of CPU profiling

CPU profiling is expensive to the point that it skews performance measurement. I edited the prepend.php to just xhprof_enable(XHPROF_FLAGS_MEMORY); but then I get the error:

Unexpected system behaviour.<br /> <b>Notice</b>: Undefined index: cpu in <b>/Users/moshe.weitzman/reps/xhprof.io/xhprof/classes/data.php</b> on line <b>198</b><br />

Would be nice to support running without CPU profiling.

"Unexpected system behaviour." after fresh install

The queries generated by XHProf aren't (always) very tidy. Depending on your RDBMS settings, this can result in a very unintuitive error on startup. This can be "fixed" by using a lame sql-mode. The easiest way is to pass it as initial command when constructing the PDO object, like so:

new PDO('mysql:dbname=xhprof;host=localhost;charset=utf8', 'username', 'password', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET sql_mode = ""'))

This makes MySQL and friends, not trip on the queries doing an ambiguous group-by.

Sortable table headers don't work on request or function page

In frontend.js ayToggleElement fails to attach since no element exists with the id #metrics-summary. Which then stops the sortable table functionality working.

I've just added a try catch in my fork so that at least the table is still sortable on the request page. It still doesn't work on the function page.

Filter by namespace

I want to suggest a minor filter enhancement:

Drill down per namespace. Usually, when working with well structured frameworks i probably want to profile only a certain namespace. It would be good, i could then filter the data to one or more namespaces.

WDYT?

append.php never returns

When using xhprof.io behind apache2 (on Debian stable) and PHP 5.3.3-7, append.php, the $xhprof_data_obj->save($xhprof_data); call never returns.

MySQL database is up and capturing data (rows are being created in the tables).

For reference, this is with a bare / basic Symfony2 codebase.

Use of undefined constant INTERFACE_END - assumed 'INTERFACE_END'

Type: Run-time notice.
Message: Use of undefined constant INTERFACE_END - assumed 'INTERFACE_END'
File: [xhprof.io]/xhprof/includes/helpers.ay.inc.php
Line: 155
Time: Nov 7, 2013 17:44
#0 ay\error_exception_handler(8, Use of undefined constant INTERFACE_END - assumed 'INTERFACE_END', [xhprof.io]/xhprof/includes/helpers.ay.inc.php, 155, Array ([url] => /xhprof.io/?xhprof[template]=uris&xhprof[query][host_id]=2&xhprof[query][dataset_size]=10000,[message_text] => ,[message_type] => error)) called at [[xhprof.io]/xhprof/includes/helpers.ay.inc.php:155]
#1 ay\redirect(/xhprof.io/?xhprof[template]=uris&xhprof[query][host_id]=2&xhprof[query][dataset_size]=10000) called at [[xhprof.io]/index.php:74]

Field 'request_caller_id' doesn't have a default value

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1364 Field 'request_caller_id' doesn't have a default value' in /web/xhprof.io/xhprof/classes/data.php:185 Stack trace: #0 /web/xhprof.io/xhprof/classes/data.php(185): PDOStatement->execute() #1 /web/xhprof.io/inc/append.php(26): ay\xhprof\Data->save(Array) #2 [internal function]: {closure}() #3 {main} thrown in /web/xhprof.io/xhprof/classes/data.php on line 185

Don't know how to show the data

Hello,

I have installed it, created database and populated it. I am accessing it in my computer in a given URL but I see no data at all.

I have configured the output of xhprof to /tmp folder.

I can access the files both with data and standard callgraph but dont know how to do it with xhprof.io

Is there anything missing??

Thanks a lot and regards

enhance display of filter and summary

I want to suggest an UX enhancement:

filter and summary navigation elements are taken off the navigation bar when clicked. That confused me a bit. It would be better, if they are toggled somehow, so they do not disappear but shown active or inactive on the navigation bar.

For me, these two are critical and i probably want to apply a filter wherever i am at that moment. Also, the summary makes sense in a lot of use-cases. So they should be sticky (or always reachable).

WDYT?

Parse error: syntax error, unexpected '['

I'm getting this error:

Parse error: syntax error, unexpected '[' in /xhprof.io/xhprof/includes/helpers.ay.inc.php on line 50

But when I look at the code, I see a valid array:

$messages_types = ['error', 'important', 'notice', 'success'];

I don't thing PHP version has anything to do with this one but I'm using PHP 5.3.2-1ubuntu4.18 and xhprof 0.9.3 version

:(

  1. Nenorėtum viso kodo perašyti pagal PSR-1, PSR-2 standartus? :)
  2. PHPDoc komentarai blogai - ne "param", bet "@param"
  3. template engine'o jokio nenaudoji

"
$players[$callee_uid] = "\t" . $callee_uid . '[shape=none, label=<


"

  1. Apskritai galėtum kokį composer'į susimesti, twig'ą kaip dependency ir gražiai padaryti, o ne šūdinai, kaip dabar yra. :) O galbūt netgi geriau - naudok kokį framework'ą (e.g. symfony2) kur galėtum lengviau maintain'int projektą ir sulaukti daugiau contributorių. :)

API to request performance metrics

Hi,

a HTTP API to request the diverse performance metrics would be very nice. We want to seamlessly integrate the gathered data into our monitoring system.

e.g. Request Wall/CPU/Peak Memory Usage for a Host/URI, return json/xml formatted performance data. If these values exceed defined thresholds an alarm is triggered.

make fails (impossible constraint in 'asm') on synology DS211j

$ pear install --force pecl/xhprof
WARNING: failed to download pecl.php.net/xhprof within preferred state "stable", will instead download version 0.9.3, stability "beta"
WARNING: channel "pecl.php.net" has updated its protocols, use "pear channel-update pecl.php.net" to update
downloading xhprof-0.9.3.tgz ...
Starting to download xhprof-0.9.3.tgz (841,836 bytes)
.....................................done: 841,836 bytes
11 source files, building
running: phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
configure.in:3: warning: prefer named diversions
configure.in:3: warning: prefer named diversions
building in /opt/tmp/pear/temp/pear-build-rootxkPzBv/xhprof-0.9.3
running: /opt/tmp/pear/temp/xhprof/extension/configure
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /opt/bin/sed
checking for cc... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for icc... no
checking for suncc... no
checking whether gcc and cc understand -c and -o together... yes
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... armv5tel-unknown-linux-gnu
checking host system type... armv5tel-unknown-linux-gnu
checking target system type... armv5tel-unknown-linux-gnu
checking for PHP prefix... /opt
checking for PHP includes... -I/opt/include/php -I/opt/include/php/main -I/opt/include/php/TSRM -I/opt/include/php/Zend -I/opt/include/php/ext -I/opt/include/php/ext/date/lib
checking for PHP extension directory... /opt/lib/php/extensions
checking for PHP installed headers prefix... /opt/include/php
checking if debug is enabled... no
checking if zts is enabled... no
checking for re2c... no
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
checking for gawk... gawk
checking whether to enable xhprof support... yes, shared
checking for ld used by gcc... /opt/arm-none-linux-gnueabi/bin/ld
checking if the linker (/opt/arm-none-linux-gnueabi/bin/ld) is GNU ld... yes
checking for /opt/arm-none-linux-gnueabi/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /opt/bin/nm -B
checking whether ln -s works... yes
checking how to recognize dependent libraries... pass_all
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking the maximum length of command line arguments... 32768
checking command to parse /opt/bin/nm -B output from gcc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking whether the gcc linker (/opt/arm-none-linux-gnueabi/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no

creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
running: make
/opt/bin/bash /opt/tmp/pear/temp/pear-build-rootxkPzBv/xhprof-0.9.3/libtool --mode=compile gcc -I. -I/opt/tmp/pear/temp/xhprof/extension -DPHP_ATOM_INC -I/opt/tmp/pear/temp/pear-build-rootxkPzBv/xhprof-0.9.3/include -I/opt/tmp/pear/temp/pear-build-rootxkPzBv/xhprof-0.9.3/main -I/opt/tmp/pear/temp/xhprof/extension -I/opt/include/php -I/opt/include/php/main -I/opt/include/php/TSRM -I/opt/include/php/Zend -I/opt/include/php/ext -I/opt/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /opt/tmp/pear/temp/xhprof/extension/xhprof.c -o xhprof.lo
mkdir .libs
gcc -I. -I/opt/tmp/pear/temp/xhprof/extension -DPHP_ATOM_INC -I/opt/tmp/pear/temp/pear-build-rootxkPzBv/xhprof-0.9.3/include -I/opt/tmp/pear/temp/pear-build-rootxkPzBv/xhprof-0.9.3/main -I/opt/tmp/pear/temp/xhprof/extension -I/opt/include/php -I/opt/include/php/main -I/opt/include/php/TSRM -I/opt/include/php/Zend -I/opt/include/php/ext -I/opt/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /opt/tmp/pear/temp/xhprof/extension/xhprof.c -fPIC -DPIC -o .libs/xhprof.o
/opt/tmp/pear/temp/xhprof/extension/xhprof.c: In function 'hp_init_profiler_state':
/opt/tmp/pear/temp/xhprof/extension/xhprof.c:1224: error: impossible constraint in 'asm'
/opt/tmp/pear/temp/xhprof/extension/xhprof.c:1224: error: impossible constraint in 'asm'
make: *** [xhprof.lo] Error 1
ERROR: `make' failed
$ make
make: *** No targets specified and no makefile found. Stop.

Filterable by method-type

I want to suggest an UX enhancement:

Clicking on a chart section should whether hilight those type of methods or filter down to show only them. Same is true for the labels on methods. If i click internal or PDO label while on table-view i want to toggle them on/off - so i can probably easier just compare user-defined functions or so.

I guess, this makes it easier to drill down the sometimes massive data to what i want to focus on.

WDYT?

missing cleanup strategy

I'm currently running xhprof/preinheimer in our staging environment and on one of the production servers, logging a fraction of all requests. In order to maintain a reasonable dataset size, i do a simple timestamp based cleanup after 1 week.

the cleanup script looks like this:

DELETE FROM details WHERE timestamp <= DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 7 DAY)

and runs every minute. keeps the table nice and clean. If that would make for a too chunky deletion, I could run mk-archiver to ensure the delete calls are bite-sized. this is assuming that there is an index on timestamp, of course.

Just some data points: ~400k rows, avg row length 38kb, total dataset size ~15Gb. This is for 1 week of data.

While the normalized schema may give some space savings over the denormalized schema, it makes cleanup way harder. Therefore, the project should supply such a cleanup script.

Numeric value out of range: 1264 Out of range value for column 'mu'

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'mu' at row 1' in /web/xhprof.io/xhprof/classes/data.php:262 Stack trace: #0 /web/xhprof.io/xhprof/classes/data.php(262): PDOStatement->execute() #1 /web/xhprof.io/inc/append.php(26): ay\xhprof\Data->save(Array) #2 [internal function]: {closure}() #3 {main} thrown in /web/xhprof.io/xhprof/classes/data.php on line 262

Add Buggregator to README (OpenSource Tool for Analyzing xhprof profiles)

Hi there,

XHProf is a crucial tool for many developers in profiling their PHP applications.

I would like to propose adding a link to the Buggregator repository in your README. Buggregator is an open-source tool that complements XHProf by providing enhanced profiling and analysis features for PHP applications.

We are working hard to provide one of the best open-source solutions and tools for debugging PHP applications for developers. It would be great to have a link to it in your README.

Here is docs with information on how to use it.

Adding this link can help developers discover additional resources to optimize their development processes.

Thx!

STRICT_ALL_TABLES

XHProf.io doesn't work with sql_mode=STRICT_ALL_TABLES. The application is trying to insert invalid data in to the database. This is an issue for me as the software I develop should have STRICT_ALL_TABLES enabled during development.

PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'mu' at row 1' in /var/www/html/xhprof/xhprof/classes/data.php:258

PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1364 Field 'request_caller_id' doesn't have a default value' in /var/www/html/xhprof/xhprof/classes/data.php:185

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.