Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: runtime/vm/snapshot_test.dart

Issue 11783009: Big merge from experimental to bleeding edge. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/parser.cc ('k') | runtime/vm/symbols.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'dart:isolate'; 5 import 'dart:isolate';
6 6
7 class Fields { 7 class Fields {
8 Fields(int i, int j) : fld1 = i, fld2 = j, fld5 = true {} 8 Fields(int i, int j) : fld1 = i, fld2 = j, fld5 = true {}
9 int fld1; 9 int fld1;
10 final int fld2; 10 final int fld2;
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 class TowersDisk { 96 class TowersDisk {
97 final int size; 97 final int size;
98 TowersDisk next; 98 TowersDisk next;
99 99
100 TowersDisk(size) : this.size = size, next = null {} 100 TowersDisk(size) : this.size = size, next = null {}
101 } 101 }
102 102
103 class Towers { 103 class Towers {
104 List<TowersDisk> piles; 104 List<TowersDisk> piles;
105 int movesDone; 105 int movesDone;
106 Towers(int disks) : piles = new List<TowersDisk>(3), movesDone = 0 { 106 Towers(int disks)
107 : piles = new List<TowersDisk>.fixedLength(3), movesDone = 0 {
107 build(0, disks); 108 build(0, disks);
108 } 109 }
109 110
110 void build(int pile, int disks) { 111 void build(int pile, int disks) {
111 for (var i = disks - 1; i >= 0; i--) { 112 for (var i = disks - 1; i >= 0; i--) {
112 push(pile, new TowersDisk(i)); 113 push(pile, new TowersDisk(i));
113 } 114 }
114 } 115 }
115 116
116 void push(int pile, TowersDisk disk) { 117 void push(int pile, TowersDisk disk) {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 new TowersBenchmark().report(); 170 new TowersBenchmark().report();
170 } 171 }
171 } 172 }
172 173
173 // S i e v e 174 // S i e v e
174 class SieveBenchmark extends BenchmarkBase { 175 class SieveBenchmark extends BenchmarkBase {
175 const SieveBenchmark() : super("Sieve"); 176 const SieveBenchmark() : super("Sieve");
176 177
177 static int sieve(int size) { 178 static int sieve(int size) {
178 int primeCount = 0; 179 int primeCount = 0;
179 List<bool> flags = new List<bool>(size + 1); 180 List<bool> flags = new List<bool>.fixedLength(size + 1);
180 for (int i = 1; i < size; i++) flags[i] = true; 181 for (int i = 1; i < size; i++) flags[i] = true;
181 for (int i = 2; i < size; i++) { 182 for (int i = 2; i < size; i++) {
182 if (flags[i]) { 183 if (flags[i]) {
183 primeCount++; 184 primeCount++;
184 for (int k = i + 1; k <= size; k += i) 185 for (int k = i + 1; k <= size; k += i)
185 flags[k - 1] = false; 186 flags[k - 1] = false;
186 } 187 }
187 } 188 }
188 return primeCount; 189 return primeCount;
189 } 190 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 for (int k = n - 1; k >= 1; k--) { 228 for (int k = n - 1; k >= 1; k--) {
228 swap(n, k, list); 229 swap(n, k, list);
229 doPermute(n - 1, list); 230 doPermute(n - 1, list);
230 swap(n, k, list); 231 swap(n, k, list);
231 } 232 }
232 } 233 }
233 } 234 }
234 235
235 int permute(int size) { 236 int permute(int size) {
236 permuteCount = 0; 237 permuteCount = 0;
237 List<int> list = new List<int>(size); 238 List<int> list = new List<int>.fixedLength(size);
238 for (int i = 1; i < size; i++) list[i] = i - 1; 239 for (int i = 1; i < size; i++) list[i] = i - 1;
239 doPermute(size - 1, list); 240 doPermute(size - 1, list);
240 return permuteCount; 241 return permuteCount;
241 } 242 }
242 } 243 }
243 244
244 class PermuteBenchmark extends BenchmarkBase { 245 class PermuteBenchmark extends BenchmarkBase {
245 const PermuteBenchmark() : super("Permute"); 246 const PermuteBenchmark() : super("Permute");
246 247
247 void warmup() { 248 void warmup() {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 } 291 }
291 } else { 292 } else {
292 q = true; 293 q = true;
293 } 294 }
294 } 295 }
295 } 296 }
296 return q; 297 return q;
297 } 298 }
298 299
299 static void queens() { 300 static void queens() {
300 List<bool> a = new List<bool>(9); 301 List<bool> a = new List<bool>.fixedLength(9);
301 List<bool> b = new List<bool>(17); 302 List<bool> b = new List<bool>.fixedLength(17);
302 List<bool> c = new List<bool>(15); 303 List<bool> c = new List<bool>.fixedLength(15);
303 List<int> x = new List<int>(9); 304 List<int> x = new List<int>.fixedLength(9);
304 b[1] = false; 305 b[1] = false;
305 for (int i = -7; i <= 16; i++) { 306 for (int i = -7; i <= 16; i++) {
306 if ((i >= 1) && (i <= 8)) a[i] = true; 307 if ((i >= 1) && (i <= 8)) a[i] = true;
307 if (i >= 2) b[i] = true; 308 if (i >= 2) b[i] = true;
308 if (i <= 7) c[i + 7] = true; 309 if (i <= 7) c[i + 7] = true;
309 } 310 }
310 311
311 if (!tryQueens(1, b, a, c, x)) 312 if (!tryQueens(1, b, a, c, x))
312 Error.error("Error in queens"); 313 Error.error("Error in queens");
313 } 314 }
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 } 400 }
400 401
401 // 402 //
402 class SortData { 403 class SortData {
403 List<int> list; 404 List<int> list;
404 int min; 405 int min;
405 int max; 406 int max;
406 407
407 SortData(int length) { 408 SortData(int length) {
408 Random r = new Random(); 409 Random r = new Random();
409 list = new List<int>(length); 410 list = new List<int>.fixedLength(length);
410 for (int i = 0; i < length; i++) list[i] = r.random(); 411 for (int i = 0; i < length; i++) list[i] = r.random();
411 412
412 int min, max; 413 int min, max;
413 min = max = list[0]; 414 min = max = list[0];
414 for (int i = 0; i < length; i++) { 415 for (int i = 0; i < length; i++) {
415 int e = list[i]; 416 int e = list[i];
416 if (e > max) max = e; 417 if (e > max) max = e;
417 if (e < min) min = e; 418 if (e < min) min = e;
418 } 419 }
419 420
(...skipping 890 matching lines...) Expand 10 before | Expand all | Expand 10 after
1310 var idx = i; 1311 var idx = i;
1311 remote.call(sentObject).then(expectAsync1((var receivedObject) { 1312 remote.call(sentObject).then(expectAsync1((var receivedObject) {
1312 MessageTest.VerifyObject(idx, receivedObject); 1313 MessageTest.VerifyObject(idx, receivedObject);
1313 })); 1314 }));
1314 } 1315 }
1315 1316
1316 // Send recursive objects and receive them back. 1317 // Send recursive objects and receive them back.
1317 List local_list1 = ["Hello", "World", "Hello", 0xffffffffff]; 1318 List local_list1 = ["Hello", "World", "Hello", 0xffffffffff];
1318 List local_list2 = [null, local_list1, local_list1 ]; 1319 List local_list2 = [null, local_list1, local_list1 ];
1319 List local_list3 = [local_list2, 2.0, true, false, 0xffffffffff]; 1320 List local_list3 = [local_list2, 2.0, true, false, 0xffffffffff];
1320 List sendObject = new List(5); 1321 List sendObject = new List.fixedLength(5);
1321 sendObject[0] = local_list1; 1322 sendObject[0] = local_list1;
1322 sendObject[1] = sendObject; 1323 sendObject[1] = sendObject;
1323 sendObject[2] = local_list2; 1324 sendObject[2] = local_list2;
1324 sendObject[3] = sendObject; 1325 sendObject[3] = sendObject;
1325 sendObject[4] = local_list3; 1326 sendObject[4] = local_list3;
1326 remote.call(sendObject).then((var replyObject) { 1327 remote.call(sendObject).then((var replyObject) {
1327 Expect.equals(true, sendObject is List); 1328 Expect.equals(true, sendObject is List);
1328 Expect.equals(true, replyObject is List); 1329 Expect.equals(true, replyObject is List);
1329 Expect.equals(sendObject.length, replyObject.length); 1330 Expect.equals(sendObject.length, replyObject.length);
1330 Expect.equals(true, identical(replyObject[1], replyObject)); 1331 Expect.equals(true, identical(replyObject[1], replyObject));
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
1434 })); 1435 }));
1435 for (int i = 0; i < Math.min(ISOLATES, N); i++) state.startClient(i); 1436 for (int i = 0; i < Math.min(ISOLATES, N); i++) state.startClient(i);
1436 }); 1437 });
1437 } 1438 }
1438 1439
1439 1440
1440 class MandelbrotState { 1441 class MandelbrotState {
1441 1442
1442 MandelbrotState() { 1443 MandelbrotState() {
1443 _result = new List<List<int>>(N); 1444 _result = new List<List<int>>(N);
1444 _lineProcessedBy = new List<LineProcessorClient>(N); 1445 _lineProcessedBy = new List<LineProcessorClient>.fixedLength(N);
1445 _sent = 0; 1446 _sent = 0;
1446 _missing = N; 1447 _missing = N;
1447 _validated = new Completer<bool>(); 1448 _validated = new Completer<bool>();
1448 } 1449 }
1449 1450
1450 void startClient(int id) { 1451 void startClient(int id) {
1451 assert(_sent < N); 1452 assert(_sent < N);
1452 final client = new LineProcessorClient(this, id); 1453 final client = new LineProcessorClient(this, id);
1453 client.processLine(_sent++); 1454 client.processLine(_sent++);
1454 } 1455 }
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1514 } 1515 }
1515 1516
1516 MandelbrotState _state; 1517 MandelbrotState _state;
1517 int _id; 1518 int _id;
1518 SendPort _port; 1519 SendPort _port;
1519 } 1520 }
1520 1521
1521 List<int> processLine(int y) { 1522 List<int> processLine(int y) {
1522 double inverseN = 2.0 / N; 1523 double inverseN = 2.0 / N;
1523 double Civ = y * inverseN - 1.0; 1524 double Civ = y * inverseN - 1.0;
1524 List<int> result = new List<int>(N); 1525 List<int> result = new List<int>.fixedLength(N);
1525 for (int x = 0; x < N; x++) { 1526 for (int x = 0; x < N; x++) {
1526 double Crv = x * inverseN - 1.5; 1527 double Crv = x * inverseN - 1.5;
1527 1528
1528 double Zrv = Crv; 1529 double Zrv = Crv;
1529 double Ziv = Civ; 1530 double Ziv = Civ;
1530 1531
1531 double Trv = Crv * Crv; 1532 double Trv = Crv * Crv;
1532 double Tiv = Civ * Civ; 1533 double Tiv = Civ * Civ;
1533 1534
1534 int i = 49; 1535 int i = 49;
(...skipping 13 matching lines...) Expand all
1548 void processLines() { 1549 void processLines() {
1549 port.receive((message, SendPort replyTo) { 1550 port.receive((message, SendPort replyTo) {
1550 if (message == TERMINATION_MESSAGE) { 1551 if (message == TERMINATION_MESSAGE) {
1551 assert(replyTo == null); 1552 assert(replyTo == null);
1552 port.close(); 1553 port.close();
1553 } else { 1554 } else {
1554 replyTo.send(processLine(message), null); 1555 replyTo.send(processLine(message), null);
1555 } 1556 }
1556 }); 1557 });
1557 } 1558 }
OLDNEW
« no previous file with comments | « runtime/vm/parser.cc ('k') | runtime/vm/symbols.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698