You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mahout.apache.org by "Dawid Weiss (JIRA)" <ji...@apache.org> on 2010/01/16 14:51:55 UTC

[jira] Created: (MAHOUT-253) Proposal for high performance primitive collections.

Proposal for high performance primitive collections.
----------------------------------------------------

                 Key: MAHOUT-253
                 URL: https://issues.apache.org/jira/browse/MAHOUT-253
             Project: Mahout
          Issue Type: New Feature
          Components: Utils
            Reporter: Dawid Weiss
            Assignee: Dawid Weiss
            Priority: Minor


A proposal for template-driven collections library (lists, sets, maps, deques), with specializations for Java primitive types to save memory and increase performance. The "templates" are regular Java classes written with generics and certain "intrinsics", that is blocks replaceable by a regexp-preprocessor. This lets one write the code once, immediately test it (tests are also templates) and generate primitive versions from a single source.

An additional interesting part is the benchmarking subsystem written on top of JUnit ;)

There are major differences from the Java Collections API, most notably no interfaces and interface-compatible views over sub-collections or key/value sets. These classes also expose their internal implementation (buffers, addressing, etc.) so that the code can be optimized for a particular use case.
These motivations are further discussed here, together with an API overview.

http://www.carrot-search.com/download/hppc/index.html

I am curious what you think about it. If folks like it, Carrot Search will donate the code to Mahout (or Apache Commons-?) and will maintain it (because we plan to use it in our internal projects anyway).



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (MAHOUT-253) Proposal for high performance primitive collections.

Posted by "Dawid Weiss (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/MAHOUT-253?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dawid Weiss updated MAHOUT-253:
-------------------------------

    Attachment: hppc-1.0-dev.zip

> Proposal for high performance primitive collections.
> ----------------------------------------------------
>
>                 Key: MAHOUT-253
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-253
>             Project: Mahout
>          Issue Type: New Feature
>          Components: Utils
>            Reporter: Dawid Weiss
>            Assignee: Dawid Weiss
>            Priority: Minor
>         Attachments: hppc-1.0-dev.zip
>
>
> A proposal for template-driven collections library (lists, sets, maps, deques), with specializations for Java primitive types to save memory and increase performance. The "templates" are regular Java classes written with generics and certain "intrinsics", that is blocks replaceable by a regexp-preprocessor. This lets one write the code once, immediately test it (tests are also templates) and generate primitive versions from a single source.
> An additional interesting part is the benchmarking subsystem written on top of JUnit ;)
> There are major differences from the Java Collections API, most notably no interfaces and interface-compatible views over sub-collections or key/value sets. These classes also expose their internal implementation (buffers, addressing, etc.) so that the code can be optimized for a particular use case.
> These motivations are further discussed here, together with an API overview.
> http://www.carrot-search.com/download/hppc/index.html
> I am curious what you think about it. If folks like it, Carrot Search will donate the code to Mahout (or Apache Commons-?) and will maintain it (because we plan to use it in our internal projects anyway).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.