GithubHelp home page GithubHelp logo

Comments (13)

MarioHewardt avatar MarioHewardt commented on July 20, 2024 2

There is likely some difference in behavior between the distros. While the preview release is focused on Ubuntu 18.04 we will definitely have to take a closer look at this as we move forward. Thanks for reporting it!

from procmon-for-linux.

egeexyz avatar egeexyz commented on July 20, 2024 1

It looks like it collects around 2500 events every 1 second and grabs about 100MB of memory every 1 second.

lscpu snippet:

Model name:          AMD FX(tm)-8350 Eight-Core Processor
CPU(s):                    8
Core(s) per socket:  4
Thread(s) per core:  2

from procmon-for-linux.

josalem avatar josalem commented on July 20, 2024

If you don't specify any arguments, procmon will trace all the syscalls it knows about: https://github.com/microsoft/ProcMon-for-Linux/blob/ad86920331dda3315538ab0ee30fb24727aff82d/src/configuration/procmon_configuration.cpp#L146-L153

I'm pretty sure what you're seeing is the in memory database growing as events are saved.

from procmon-for-linux.

MarioHewardt avatar MarioHewardt commented on July 20, 2024

How fast is the memory growing? Say, every 5 seconds it grows by X MB?

from procmon-for-linux.

MarioHewardt avatar MarioHewardt commented on July 20, 2024

A small increase is to be expected as events are collected. I'm not, however, able to reproduce the large increase you are seeing.

from procmon-for-linux.

egeexyz avatar egeexyz commented on July 20, 2024

I let it run for about 4 minutes and it is up to 2,000,000 total events and 8000mb used, and still increasing. Luckily, the moment I ctrl-c, it closes and returns all of the memory.

from procmon-for-linux.

MarioHewardt avatar MarioHewardt commented on July 20, 2024

What does htop show for memory consumption (specifically for procmon)?

from procmon-for-linux.

egeexyz avatar egeexyz commented on July 20, 2024

image

from procmon-for-linux.

MarioHewardt avatar MarioHewardt commented on July 20, 2024

Just to be sure, this is Ubuntu 18.04 correct?

from procmon-for-linux.

egeexyz avatar egeexyz commented on July 20, 2024

It is KDE neon 5.19 which is functionally the same as Kubuntu 18.04.

lsb_release -a

Distributor ID: neon
Description:    KDE neon User Edition 5.19
Release:        18.04
Codename:       bionic

uname -a
Linux egee-workstation 5.3.0-53-generic #47~18.04.1-Ubuntu SMP Thu May 7 13:10:50 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

from procmon-for-linux.

Xarkam avatar Xarkam commented on July 20, 2024

Hello, there is the log under KDE Neon 5.19:

Xarkam@HYKSOS  ~/Téléchargements  uname -a
Linux HYKSOS 5.4.0-42-generic #46~18.04.1-Ubuntu SMP Fri Jul 10 07:21:24 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
xarkam@HYKSOS  ~/Téléchargements  sudo procmon
In file included from /virtual/main.c:21:
In file included from include/linux/dcache.h:7:
In file included from include/linux/rculist.h:11:
In file included from include/linux/rcupdate.h:26:
In file included from include/linux/irqflags.h:16:
In file included from ./arch/x86/include/asm/irqflags.h:9:
In file included from ./arch/x86/include/asm/nospec-branch.h:314:
./arch/x86/include/asm/segment.h:266:2: error: expected '(' after 'asm'
        alternative_io ("lsl %[seg],%[p]",
        ^
./arch/x86/include/asm/alternative.h:240:2: note: expanded from macro 'alternative_io'
        asm_inline volatile (ALTERNATIVE(oldinstr, newinstr, feature)   \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:21:
In file included from include/linux/dcache.h:7:
In file included from include/linux/rculist.h:11:
In file included from include/linux/rcupdate.h:27:
In file included from include/linux/preempt.h:78:
In file included from ./arch/x86/include/asm/preempt.h:7:
In file included from include/linux/thread_info.h:38:
In file included from ./arch/x86/include/asm/thread_info.h:12:
In file included from ./arch/x86/include/asm/page.h:12:
./arch/x86/include/asm/page_64.h:49:2: error: expected '(' after 'asm'
        alternative_call_2(clear_page_orig,
        ^
./arch/x86/include/asm/alternative.h:256:2: note: expanded from macro 'alternative_call_2'
        asm_inline volatile (ALTERNATIVE_2("call %P[old]", "call %P[new1]", feature1,\
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:21:
In file included from include/linux/dcache.h:7:
In file included from include/linux/rculist.h:11:
In file included from include/linux/rcupdate.h:27:
In file included from include/linux/preempt.h:78:
In file included from ./arch/x86/include/asm/preempt.h:7:
In file included from include/linux/thread_info.h:38:
In file included from ./arch/x86/include/asm/thread_info.h:53:
In file included from ./arch/x86/include/asm/cpufeature.h:5:
In file included from ./arch/x86/include/asm/processor.h:24:
./arch/x86/include/asm/special_insns.h:205:2: error: expected '(' after 'asm'
        alternative_io(".byte " __stringify(NOP_DS_PREFIX) "; clflush %P0",
        ^
./arch/x86/include/asm/alternative.h:240:2: note: expanded from macro 'alternative_io'
        asm_inline volatile (ALTERNATIVE(oldinstr, newinstr, feature)   \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:21:
In file included from include/linux/dcache.h:7:
In file included from include/linux/rculist.h:11:
In file included from include/linux/rcupdate.h:27:
In file included from include/linux/preempt.h:78:
In file included from ./arch/x86/include/asm/preempt.h:7:
In file included from include/linux/thread_info.h:38:
In file included from ./arch/x86/include/asm/thread_info.h:53:
In file included from ./arch/x86/include/asm/cpufeature.h:5:
./arch/x86/include/asm/processor.h:795:2: error: expected '(' after 'asm'
        alternative_input(BASE_PREFETCH, "prefetchnta %P1",
        ^
./arch/x86/include/asm/alternative.h:221:2: note: expanded from macro 'alternative_input'
        asm_inline volatile (ALTERNATIVE(oldinstr, newinstr, feature)   \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:21:
In file included from include/linux/dcache.h:7:
In file included from include/linux/rculist.h:11:
In file included from include/linux/rcupdate.h:27:
In file included from include/linux/preempt.h:78:
In file included from ./arch/x86/include/asm/preempt.h:7:
In file included from include/linux/thread_info.h:38:
In file included from ./arch/x86/include/asm/thread_info.h:53:
In file included from ./arch/x86/include/asm/cpufeature.h:5:
./arch/x86/include/asm/processor.h:807:2: error: expected '(' after 'asm'
        alternative_input(BASE_PREFETCH, "prefetchw %P1",
        ^
./arch/x86/include/asm/alternative.h:221:2: note: expanded from macro 'alternative_input'
        asm_inline volatile (ALTERNATIVE(oldinstr, newinstr, feature)   \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:21:
In file included from include/linux/dcache.h:7:
In file included from include/linux/rculist.h:11:
In file included from include/linux/rcupdate.h:27:
In file included from include/linux/preempt.h:78:
In file included from ./arch/x86/include/asm/preempt.h:7:
include/linux/thread_info.h:134:2: error: expected '(' after 'asm'
        WARN(1, "Buffer overflow detected (%d < %lu)!\n", size, count);
        ^
include/asm-generic/bug.h:124:3: note: expanded from macro 'WARN'
                __WARN_printf(TAINT_WARN, format);                      \
                ^
include/asm-generic/bug.h:93:3: note: expanded from macro '__WARN_printf'
                __WARN_FLAGS(BUGFLAG_NO_CUT_HERE | BUGFLAG_TAINT(taint));\
                ^
./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
        _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
        ^
./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
        asm_inline volatile("1:\t" ins "\n"                             \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:21:
In file included from include/linux/dcache.h:7:
In file included from include/linux/rculist.h:11:
In file included from include/linux/rcupdate.h:27:
In file included from include/linux/preempt.h:78:
In file included from ./arch/x86/include/asm/preempt.h:7:
include/linux/thread_info.h:150:6: error: expected '(' after 'asm'
        if (WARN_ON_ONCE(bytes > INT_MAX))
            ^
include/asm-generic/bug.h:98:3: note: expanded from macro 'WARN_ON_ONCE'
                __WARN_FLAGS(BUGFLAG_ONCE |                     \
                ^
./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
        _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
        ^
./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
        asm_inline volatile("1:\t" ins "\n"                             \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:21:
In file included from include/linux/dcache.h:7:
In file included from include/linux/rculist.h:11:
include/linux/rcupdate.h:893:2: error: expected '(' after 'asm'
        WARN_ON_ONCE(func != (rcu_callback_t)~0L);
        ^
include/asm-generic/bug.h:98:3: note: expanded from macro 'WARN_ON_ONCE'
                __WARN_FLAGS(BUGFLAG_ONCE |                     \
                ^
./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
        _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
        ^
./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
        asm_inline volatile("1:\t" ins "\n"                             \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:23:
In file included from include/linux/fdtable.h:16:
In file included from include/linux/fs.h:15:
In file included from include/linux/radix-tree.h:18:
In file included from include/linux/xarray.h:14:
In file included from include/linux/gfp.h:6:
In file included from include/linux/mmzone.h:21:
In file included from include/linux/mm_types.h:14:
In file included from include/linux/uprobes.h:49:
In file included from ./arch/x86/include/asm/uprobes.h:13:
In file included from include/linux/notifier.h:16:
In file included from include/linux/srcu.h:21:
In file included from include/linux/workqueue.h:9:
In file included from include/linux/timer.h:6:
include/linux/ktime.h:171:2: error: expected '(' after 'asm'
        WARN_ON(div < 0);
        ^
include/asm-generic/bug.h:115:3: note: expanded from macro 'WARN_ON'
                __WARN();                                               \
                ^
include/asm-generic/bug.h:90:19: note: expanded from macro '__WARN'
#define __WARN()                __WARN_FLAGS(BUGFLAG_TAINT(TAINT_WARN))
                                ^
./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
        _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
        ^
./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
        asm_inline volatile("1:\t" ins "\n"                             \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:23:
In file included from include/linux/fdtable.h:16:
In file included from include/linux/fs.h:15:
In file included from include/linux/radix-tree.h:18:
In file included from include/linux/xarray.h:14:
In file included from include/linux/gfp.h:6:
In file included from include/linux/mmzone.h:21:
In file included from include/linux/mm_types.h:14:
In file included from include/linux/uprobes.h:49:
In file included from ./arch/x86/include/asm/uprobes.h:13:
In file included from include/linux/notifier.h:16:
include/linux/srcu.h:179:2: error: expected '(' after 'asm'
        WARN_ON_ONCE(idx & ~0x1);
        ^
include/asm-generic/bug.h:98:3: note: expanded from macro 'WARN_ON_ONCE'
                __WARN_FLAGS(BUGFLAG_ONCE |                     \
                ^
./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
        _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
        ^
./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
        asm_inline volatile("1:\t" ins "\n"                             \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:23:
In file included from include/linux/fdtable.h:16:
In file included from include/linux/fs.h:15:
In file included from include/linux/radix-tree.h:18:
In file included from include/linux/xarray.h:14:
In file included from include/linux/gfp.h:6:
In file included from include/linux/mmzone.h:22:
include/linux/page-flags.h:565:2: error: expected '(' after 'asm'
        BUG_ON(!PageHead(page));
        ^
include/asm-generic/bug.h:62:57: note: expanded from macro 'BUG_ON'
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                                        ^
./arch/x86/include/asm/bug.h:73:2: note: expanded from macro 'BUG'
        _BUG_FLAGS(ASM_UD2, 0);                                 \
        ^
./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
        asm_inline volatile("1:\t" ins "\n"                             \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:23:
In file included from include/linux/fdtable.h:16:
In file included from include/linux/fs.h:15:
In file included from include/linux/radix-tree.h:18:
In file included from include/linux/xarray.h:14:
In file included from include/linux/gfp.h:6:
In file included from include/linux/mmzone.h:971:
In file included from ./arch/x86/include/asm/mmzone.h:5:
In file included from ./arch/x86/include/asm/mmzone_64.h:11:
In file included from ./arch/x86/include/asm/smp.h:13:
In file included from ./arch/x86/include/asm/apic.h:11:
In file included from ./arch/x86/include/asm/fixmap.h:190:
include/asm-generic/fixmap.h:38:2: error: expected '(' after 'asm'
        BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START);
        ^
include/asm-generic/bug.h:62:57: note: expanded from macro 'BUG_ON'
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                                        ^
./arch/x86/include/asm/bug.h:73:2: note: expanded from macro 'BUG'
        _BUG_FLAGS(ASM_UD2, 0);                                 \
        ^
./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
        asm_inline volatile("1:\t" ins "\n"                             \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:23:
In file included from include/linux/fdtable.h:16:
In file included from include/linux/fs.h:15:
In file included from include/linux/radix-tree.h:18:
In file included from include/linux/xarray.h:14:
In file included from include/linux/gfp.h:6:
In file included from include/linux/mmzone.h:971:
In file included from ./arch/x86/include/asm/mmzone.h:5:
In file included from ./arch/x86/include/asm/mmzone_64.h:11:
In file included from ./arch/x86/include/asm/smp.h:13:
./arch/x86/include/asm/apic.h:107:2: error: expected '(' after 'asm'
        alternative_io("movl %0, %P1", "xchgl %0, %P1", X86_BUG_11AP,
        ^
./arch/x86/include/asm/alternative.h:240:2: note: expanded from macro 'alternative_io'
        asm_inline volatile (ALTERNATIVE(oldinstr, newinstr, feature)   \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:23:
In file included from include/linux/fdtable.h:16:
In file included from include/linux/fs.h:15:
In file included from include/linux/radix-tree.h:18:
include/linux/xarray.h:54:2: error: expected '(' after 'asm'
        WARN_ON((long)v < 0);
        ^
include/asm-generic/bug.h:115:3: note: expanded from macro 'WARN_ON'
                __WARN();                                               \
                ^
include/asm-generic/bug.h:90:19: note: expanded from macro '__WARN'
#define __WARN()                __WARN_FLAGS(BUGFLAG_TAINT(TAINT_WARN))
                                ^
./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
        _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
        ^
./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
        asm_inline volatile("1:\t" ins "\n"                             \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:23:
In file included from include/linux/fdtable.h:16:
In file included from include/linux/fs.h:39:
In file included from include/linux/ioprio.h:7:
include/linux/iocontext.h:132:2: error: expected '(' after 'asm'
        WARN_ON_ONCE(atomic_long_read(&ioc->refcount) <= 0);
        ^
include/asm-generic/bug.h:98:3: note: expanded from macro 'WARN_ON_ONCE'
                __WARN_FLAGS(BUGFLAG_ONCE |                     \
                ^
./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
        _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
        ^
./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
        asm_inline volatile("1:\t" ins "\n"                             \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:23:
In file included from include/linux/fdtable.h:16:
In file included from include/linux/fs.h:39:
In file included from include/linux/ioprio.h:7:
include/linux/iocontext.h:133:2: error: expected '(' after 'asm'
        WARN_ON_ONCE(atomic_read(&ioc->active_ref) <= 0);
        ^
include/asm-generic/bug.h:98:3: note: expanded from macro 'WARN_ON_ONCE'
                __WARN_FLAGS(BUGFLAG_ONCE |                     \
                ^
./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
        _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
        ^
./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
        asm_inline volatile("1:\t" ins "\n"                             \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:23:
In file included from include/linux/fdtable.h:16:
In file included from include/linux/fs.h:39:
In file included from include/linux/ioprio.h:7:
include/linux/iocontext.h:142:2: error: expected '(' after 'asm'
        WARN_ON_ONCE(atomic_read(&ioc->nr_tasks) <= 0);
        ^
include/asm-generic/bug.h:98:3: note: expanded from macro 'WARN_ON_ONCE'
                __WARN_FLAGS(BUGFLAG_ONCE |                     \
                ^
./arch/x86/include/asm/bug.h:79:2: note: expanded from macro '__WARN_FLAGS'
        _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags));           \
        ^
./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
        asm_inline volatile("1:\t" ins "\n"                             \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:23:
In file included from include/linux/fdtable.h:16:
In file included from include/linux/fs.h:245:
include/linux/quota.h:114:3: error: expected '(' after 'asm'
                BUG();
                ^
./arch/x86/include/asm/bug.h:73:2: note: expanded from macro 'BUG'
        _BUG_FLAGS(ASM_UD2, 0);                                 \
        ^
./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
        asm_inline volatile("1:\t" ins "\n"                             \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
In file included from /virtual/main.c:23:
In file included from include/linux/fdtable.h:16:
In file included from include/linux/fs.h:245:
include/linux/quota.h:141:3: error: expected '(' after 'asm'
                BUG();
                ^
./arch/x86/include/asm/bug.h:73:2: note: expanded from macro 'BUG'
        _BUG_FLAGS(ASM_UD2, 0);                                 \
        ^
./arch/x86/include/asm/bug.h:35:2: note: expanded from macro '_BUG_FLAGS'
        asm_inline volatile("1:\t" ins "\n"                             \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
#define asm_inline asm __inline
                       ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.

from procmon-for-linux.

cmaritan avatar cmaritan commented on July 20, 2024

Hello @Xarkam , you are using kernel 5.4, Procmon preview release only works with kernels >=4.18 and <=5.3 so, for now, the behaviour is expected.

from procmon-for-linux.

MarioHewardt avatar MarioHewardt commented on July 20, 2024

As part of our work to enable more distros, we will support a larger number of distros/kernel versions. This work should be coming in the next few months.

from procmon-for-linux.

Related Issues (20)

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.