Blog articles of New England F# User Group

0
comment
comment
on 12/5/2011 7:11 PM
Don Syme and several others sent tweets to correct my claims about boxing in F#. I made the mistake of assuming that structs cannot be used as interface implementations without being boxed and allocated on the heap. As it turns out, .NET constraints allow structs to implement interfaces without being boxed. Out of sheer curiosity, I attempted to (ab)use this facility to systematically remove heap allocation. I decided to write a simple functional program that would not use the heap at all, performing all [...]
0
comment
comment
on 11/11/2011 6:23 PM
As part of the WebSharper web server effort, I have been writing an HTTP request parser. Tuning the parser for performance for the common simple case (small, correct HTTP request) has improved performance 8-fold, from 30K to 250K sample requests parsed every second on a single core of my Core i3. Let me review what I have learned from this.
Indexing
Accessing array elements goes through a bounds check. Unmanaged C++ code clearly wins here. C# has unsafe regions, but F# does not. So what can we do in [...]
0
comment
comment
on 11/7/2011 2:56 PM
I have implemented a simple web server in F#. The idea was to try to marry .NET asynchronous socket operations with F# async. Result: F# async seems to be the right tool for the job of webserver implementation: it makes asynchronous programming intuitive without adding too much performance overhead. The server executes 3500 keep-alive or 1000 normal request per second on my Core i3 machine, compared to 2500/500 requests per second using IIS or System.Net.HttpListener.
Asynhronous Socket Operations
Worki[...]
0
comment
comment
on 11/7/2011 7:34 AM
I wrap asynchronous .NET socket methods in F# Async and benchmark a simple webserver clocking at 3500 requests/second. Read more.
0
comment
comment
on 9/28/2011 12:21 PM
Writing compilers is not a really a niche activity. If you think of it, every programmer is doing precisely that, defining a specific language for a given domain and then explaining its semantics to the computer. F#, ML and Haskell programmers know that union types are a life-saver for dealing with languages systematically. These types do, however, sometimes grow large, becoming less and less nice to work with.
If a 30-case recursive union type, or 2-3 co-recursive 20-30 case union types, is something[...]
About this group
- Founded: 7/22/2011
- Owners: Adam Granicz
- Members: 1
- Past events: 4
- Upcoming events: 0 Log in to join
Featured company
![]() | IntelliFactory 0 upcoming events |
Latest blog articles by fsug (see all)
- FAKE with NuGet support
- Generalizing records combinators a bit
- WebSharper, PhoneGap, and Ripple: easier native HTML5 apps
- TypeScript: initial impressions
- Using Coq as a program optimization tool
- Automate, automate, automate..
- Multi-targeting .NET projects with F# and FAKE
- Generating VSIX and VSTemplate packages in F#
- WebSharper 2.5.2-alpha on AppHarbor
- Upcoming WebSharper Changes
Group tags
- f# × 33
- clojure × 14
- functional × 14
- haskell × 14
- scala × 11
- erlang × 6
- c# × 4
- .net × 3
- agile × 3
- ocaml × 3
- websharper × 3
- ddd × 2
- exchange × 2
- java × 2
- javascript × 2
- neo4j × 2
- nosql × 2
- scheme × 2
- skillsmatter × 2
- alt.net × 1
- android × 1
- architecture × 1
- async × 1
- bdd exchange × 1
- blazehtml × 1
- cassandra × 1
- clean × 1
- codeken × 1
- coffeescript × 1
- common lisp × 1
- continuous delivery × 1
- finance × 1
- fractureio × 1
- grails × 1
- groovy × 1
- html × 1
- html5 × 1
- islisp × 1
- jquery × 1
- jvm × 1
- lisp × 1
- load testing × 1
- lua × 1
- metro style × 1
- microsoft × 1
- mongodb! × 1
- ninja × 1
- ouya × 1
- package management × 1
- prog × 1
- projects × 1
- python × 1
- qcon × 1
- racket × 1
- reactive extensions × 1
- restful × 1
- riak × 1
- rx × 1
- scalability × 1
- tdd × 1
- test × 1
- titanium × 1
- unit testing × 1
- user group × 1
- web × 1
- web services × 1
- winrt × 1
![]() |
Copyright (c) 2011-2012 IntelliFactory. All rights reserved. Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy |
Built with WebSharper |