Community for F# / F# Server-Side Programming

Please RSVP for instructions on how to join the event.

Description

Dave Thomas will present on his experiments with F# for server-side programming including the fracture-io project, a high-performance socket pipeline library meant to offer a range of useful features similar to those offered in 0mq and Akka.

Outline

F# Server based programming 

Benefits

Concise succinct code

Advanced asynchronous support

 

A comparison of styles

F#

1 source file

43 lines

2 types

C#

2 source files

166 lines

2 type

C# ObjectPool

F# ObjectPool

Sockets

2 Models of Operation

AsyncResult Model

SocketAsyncEventArgs Model

IAsyncResults Model

Pros

Well documented API

Can be simplified with helpers in Asynchronous workflows in F#

Fast to get an initial result


SocketAsyncEventArgs Model

Pros

Less memory allocations

Better performance

Closer to the metal

Performance Differences

5 minute test

50 clients connecting to the server

15ms interval between each one 

Server sends each client a 128 byte message every 100ms

Total of 500 messages per second

CPU & Threads

Memory

Garbage collection

F# - Fracture IO

Open source high performance Socket, Pipeline, and agent library

Introducing Fracture-IO

High performance Socket library

Highly compositional pipeline library

Pipelines

Closed Pipelines

Tomas Petricek

Image Processing Pipeline

Open Pipelines

Pipelets

Closed Pipelines

Open Pipelines

Advantages

Composability

Reusability

Can be used at any stage of processing

Separation of concerns

Flexible routing arrangements i.e. round robin, multicast, content based routing

Future Directions

Distributed Pipelets

Wave Pipeline

Synchronous buffered Pipeline

Advanced agent based programming

- Supervision

- Pooling

- Control Messages

 

Dave Thomas (dave.thomas)

31.6k
AuthorDeveloper

Dave Thomas is a technologist, computer programmer, and keen guitarist. He builds reliable efficient, high performance enterprise software in F# and C#, and also likes to belt out a good riff on the guitar! You can read his blog at http://7sharpnine.com

For a complete view of this profile, including education, work experience and developer information, you need to be logged in and have a subscription.

Tweets

Dave's upcoming trainings

No events

Dave's past online trainings

Dave's blog posts

0
comment
on 3/6/2016 2:28 PM
So I wanted to briefly talk about what I’ve been up to lately. I’ve been doing a spot of compiler hacking, working on improving type Providers and generally tinkering with concepts relating to macros etc. I’ve also been tinkering with the Elixir a[...]
.
0
comment
on 10/25/2015 12:53 PM
Ive been meaning to write this post for ages but Ive only just found the time. On the 3rd of September my good friend Ryan Riley (aka @panesofglass) emailed me letting me know I had won a Community for F# hero award for 2015!
.
0
comment
on 7/16/2015 9:35 AM
Ive finally been awarded a Microsoft MVP its been quite a long time coming. Ive been nominated for MVP every year since July 2011 but until now I have been unsuccessful. On the 1st of July I received an email congratulating me that I had been s[...]
.
0
comment
on 7/12/2015 10:56 AM
Sit down, strap in, and prepare for take off, we’re going Meta-Matic! We’re going to be exploring some metaprogramming magic in F#. Transforming its abstract syntax tree (AST) into another languages AST before executing it in another virtual mac[...]
.
0
comment
on 3/30/2015 6:15 AM
Did you know there was more to the type matching operator than just pattern matching and exception handling?
.

Dave's popular questions

IntelliFactory Offices 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