Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
Actor Framework
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cpp-libs
Actor Framework
Commits
017ddd5c
Commit
017ddd5c
authored
Jan 06, 2012
by
neverlord
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
scala benchmark
parent
461f8757
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
81 additions
and
0 deletions
+81
-0
.gitignore
.gitignore
+1
-0
benchmarks/ActorCreation.scala
benchmarks/ActorCreation.scala
+80
-0
No files found.
.gitignore
View file @
017ddd5c
...
@@ -12,6 +12,7 @@ test
...
@@ -12,6 +12,7 @@ test
*.lo
*.lo
*.dump
*.dump
*.beam
*.beam
*.class
.libs/
.libs/
.deps/
.deps/
libcppa.pc
libcppa.pc
...
...
benchmarks/ActorCreation.scala
0 → 100644
View file @
017ddd5c
import
scala.actors.Actor
import
scala.actors.Actor._
case
class
Result
(
value
:
Int
)
class
ThreadedTestee
(
parent
:
Actor
,
n
:
Int
)
extends
Actor
{
def
act
()
{
if
(
n
>
0
)
{
(
new
ThreadedTestee
(
this
,
n
-
1
)).
start
(
new
ThreadedTestee
(
this
,
n
-
1
)).
start
receive
{
case
Result
(
v1
)
=>
receive
{
case
Result
(
v2
)
=>
parent
!
new
Result
(
v1
+
v2
)
}
}
}
else
{
parent
!
new
Result
(
1
)
}
}
}
class
ThreadlessTestee
(
parent
:
Actor
,
n
:
Int
)
extends
Actor
{
def
act
()
{
if
(
n
>
0
)
{
(
new
ThreadlessTestee
(
this
,
n
-
1
)).
start
(
new
ThreadlessTestee
(
this
,
n
-
1
)).
start
react
{
case
Result
(
v1
)
=>
react
{
case
Result
(
v2
)
=>
parent
!
new
Result
(
v1
+
v2
)
}
}
}
else
{
parent
!
new
Result
(
1
)
}
}
}
object
ActorCreation
{
def
main
(
args
:
Array
[
String
])
=
{
if
(
args
.
size
!=
2
)
{
Console
println
"usage: (threaded|threadless|akka) POW\n creates 2^POW actors of given impl"
}
val
n
=
args
(
1
).
toInt
if
(
args
(
0
)
==
"threaded"
)
{
actor
{
(
new
ThreadedTestee
(
self
,
n
-
1
)).
start
(
new
ThreadedTestee
(
self
,
n
-
1
)).
start
receive
{
case
Result
(
v1
)
=>
receive
{
case
Result
(
v2
)
=>
if
((
v1
+
v2
)
!=
(
1
<<
n
))
{
throw
new
RuntimeException
(
"Expected "
+
(
1
<<
n
)
+
", received "
+
(
v1
+
v2
))
}
}
}
}
}
else
if
(
args
(
0
)
==
"threadless"
)
{
actor
{
(
new
ThreadlessTestee
(
self
,
n
-
1
)).
start
(
new
ThreadlessTestee
(
self
,
n
-
1
)).
start
react
{
case
Result
(
v1
)
=>
react
{
case
Result
(
v2
)
=>
if
((
v1
+
v2
)
!=
(
1
<<
n
))
{
throw
new
RuntimeException
(
"Expected "
+
(
1
<<
n
)
+
", received "
+
(
v1
+
v2
))
}
}
}
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment