From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 7D1D47FA56 for ; Fri, 25 Jul 2014 09:28:58 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of nicolas.boulay@gmail.com) identity=pra; client-ip=209.85.213.173; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="nicolas.boulay@gmail.com"; x-sender="nicolas.boulay@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of nicolas.boulay@gmail.com designates 209.85.213.173 as permitted sender) identity=mailfrom; client-ip=209.85.213.173; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="nicolas.boulay@gmail.com"; x-sender="nicolas.boulay@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-ig0-f173.google.com) identity=helo; client-ip=209.85.213.173; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="nicolas.boulay@gmail.com"; x-sender="postmaster@mail-ig0-f173.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: An4FAFsG0lPRVdWtm2dsb2JhbABZg2BXBIJ0xnSHRSZlCBYQAQEBAQEGCwsJFCmEBAEBBBIRHQE4AQMMAQUFBAEGBzACAiEBEgEFAQ4OGSKIDAMRDZtwaosphQKKZicNhyARAQEEDo0QgimDAw+BQAWZOoIDjieELxgpgWuDEDsv X-IPAS-Result: An4FAFsG0lPRVdWtm2dsb2JhbABZg2BXBIJ0xnSHRSZlCBYQAQEBAQEGCwsJFCmEBAEBBBIRHQE4AQMMAQUFBAEGBzACAiEBEgEFAQ4OGSKIDAMRDZtwaosphQKKZicNhyARAQEEDo0QgimDAw+BQAWZOoIDjieELxgpgWuDEDsv X-IronPort-AV: E=Sophos;i="5.01,729,1400018400"; d="scan'208";a="86925252" Received: from mail-ig0-f173.google.com ([209.85.213.173]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 25 Jul 2014 09:28:57 +0200 Received: by mail-ig0-f173.google.com with SMTP id h18so422334igc.12 for ; Fri, 25 Jul 2014 00:28:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:cc:content-type; bh=YLmLHnw6PzAQiAH9+/wXKdCjabsn/AjwhxFnnElwKaI=; b=xaVTTzMI9yYt6xUYqMSBptcStVOZ4X6nG4dBCZ96QKiAzZl2o9H1QfQtQ4al5UhcNN bBCZ+SY5H0hQ8W9f+DhPYzq9xeFkyh1vnfsPkMJ1oHF9vsE52roKEVxwuYMIWqJU/KCo Yu4GEClPDIsK4Ed0E5qPeIKLpoKW0n+HXvWgGWnKUF+hx3wPkxGo0dYGCaSDARsEs6/G CuN1c2irrmeCd2DXiqL8kOE0PLmpYAk23QusI/4hAMAnA43gF5nD2Q+VN78qrXQnMEAl yASb4Iv4f4OUq8xxQ2ksNxGJu2RfY0jULQSj8eX8gGHDswg3u6D+JylqSkfYZqGTSmUZ xtaA== MIME-Version: 1.0 X-Received: by 10.43.63.15 with SMTP id xc15mr19188407icb.66.1406273336603; Fri, 25 Jul 2014 00:28:56 -0700 (PDT) Sender: nicolas.boulay@gmail.com Received: by 10.50.73.131 with HTTP; Fri, 25 Jul 2014 00:28:56 -0700 (PDT) In-Reply-To: References: Date: Fri, 25 Jul 2014 09:28:56 +0200 X-Google-Sender-Auth: 3PYjNDCkZ0R0fq3MZksN29TkPJw Message-ID: From: Nicolas Boulay Cc: caml-list Content-Type: multipart/alternative; boundary=bcaec51d2a34af79b804feff86cb X-Validation-by: nicolas@boulay.name Subject: Re: [Caml-list] meta-gc (Re: concurrent gc?) --bcaec51d2a34af79b804feff86cb Content-Type: text/plain; charset=UTF-8 2014-07-24 19:37 GMT+02:00 Raoul Duke : > ... > > to kick the question up a meta-level: Does anybody have thoughts on > how to best orthogonalize actual memory allocation from where the > application says it wants it? I mean if I write a stupid loop that > makes a zillion particles in the middle of each frame render then yes > I'm an idiot, sure... but what things can be done to actually allow > such idiocy to squeak by? > ... > On the game world, they have invented entity-component-system ( https://en.wikipedia.org/wiki/Entity_component_system ) data-driven software architecture. The idea is to be very flexible with a "generic kind of object" (entity), with typed component. An entity is only an integer. The component are found inside a collection with the entity identifier. So each component are allocated in it's own contener, so data are more compact, and memory access appear less random. --bcaec51d2a34af79b804feff86cb Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable



2014-07-24 19:37 GMT+02:00 Raoul Duke <raould@gmail.com>:
...

to kick the question up a meta-level: Does anybody have thoughts on
how to best orthogonalize actual memory allocation from where the
application says it wants it? I mean if I write a stupid loop that
makes a zillion particles in the middle of each frame render then yes
I'm an idiot, sure... but what things can be done to actually allow
such idiocy to squeak by?
...

On th= e game world, they have invented entity-component-system ( https://en.wikipedia.org/= wiki/Entity_component_system ) data-driven software architecture. The i= dea is to be very flexible with a "generic kind of object" (entit= y), with typed component. An entity is only an integer. The component are f= ound inside a collection with the entity identifier.

So each component are allocated in it&= #39;s own contener, so data are more compact, and memory access appear less= random.
--bcaec51d2a34af79b804feff86cb--