Skip to content

Commit a6e9d4c

Browse files
committed
No more measure in group
1 parent bf92473 commit a6e9d4c

File tree

2 files changed

+20
-41
lines changed

2 files changed

+20
-41
lines changed

include/chsrc.h

+19-40
Original file line numberDiff line numberDiff line change
@@ -497,13 +497,12 @@ get_max_ele_idx_in_dbl_ary (double *array, int size)
497497

498498

499499
/**
500-
* @param size 分组大小
501-
* @param whole_sources 被分组的整体
502-
* @param whole_speeds 被分组的整体的速度值记录
503-
* @param grp_cursor_in_whole 分组在整体的下标中所处的位置
500+
* @param sources 所有待测源
501+
* @param size 待测源的数量
502+
* @param[out] speed_records 速度值记录
504503
*/
505504
void
506-
measure_speed_in_group (int size, SourceInfo whole_sources[], double whole_speeds[], int grp_cursor_in_whole)
505+
measure_speed_for_every_source (SourceInfo sources[], int size, double speed_records[])
507506
{
508507
bool get_measured[size]; /* 是否测速了 */
509508
int get_measured_n = 0; /* 测速了几个 */
@@ -515,7 +514,7 @@ measure_speed_in_group (int size, SourceInfo whole_sources[], double whole_speed
515514

516515
for (int i=0; i<size; i++)
517516
{
518-
SourceInfo src = whole_sources[i+grp_cursor_in_whole];
517+
SourceInfo src = sources[i];
519518
const char *url = src.mirror->__bigfile_url;
520519
if (NULL==url)
521520
{
@@ -530,7 +529,7 @@ measure_speed_in_group (int size, SourceInfo whole_sources[], double whole_speed
530529
chsrc_warn (xy_strjoin (3, msg1, src.mirror->code, msg2));
531530
speed = 0;
532531
}
533-
whole_speeds[i+grp_cursor_in_whole] = speed;
532+
speed_records[i] = speed;
534533
get_measured[i] = false;
535534
measure_msgs[i] = NULL;
536535
}
@@ -565,15 +564,15 @@ measure_speed_in_group (int size, SourceInfo whole_sources[], double whole_speed
565564
{
566565
char *curl_result = measure_speed_for_url (url_);
567566
double speed = parse_and_say_curl_result (curl_result);
568-
whole_speeds[i+grp_cursor_in_whole] = speed;
567+
speed_records[i] = speed;
569568
}
570569
}
571570
}
572571

573572

574573
if (CliOpt_Parallel)
575574
{
576-
/* 一组汇总 */
575+
/* 汇总 */
577576
char **curl_results = xy_malloc0 (sizeof(char *) * size);
578577
for (int i=0; i<size; i++)
579578
{
@@ -590,7 +589,7 @@ measure_speed_in_group (int size, SourceInfo whole_sources[], double whole_speed
590589
{
591590
printf ("%s", measure_msgs[i]);
592591
double speed = parse_and_say_curl_result (curl_results[i]);
593-
whole_speeds[i+grp_cursor_in_whole] = speed;
592+
speed_records[i] = speed;
594593
}
595594
}
596595
/* 汇总结束 */
@@ -604,9 +603,9 @@ measure_speed_in_group (int size, SourceInfo whole_sources[], double whole_speed
604603
*
605604
* @translation Done
606605
*/
607-
#define auto_select(s) auto_select_(s##_sources, s##_sources_n, (char*)#s+3)
606+
#define auto_select_mirror(s) select_mirror_autoly(s##_sources, s##_sources_n, (char*)#s+3)
608607
int
609-
auto_select_ (SourceInfo *sources, size_t size, const char *target_name)
608+
select_mirror_autoly (SourceInfo *sources, size_t size, const char *target_name)
610609
{
611610
{
612611
char *msg = NULL;
@@ -649,36 +648,16 @@ auto_select_ (SourceInfo *sources, size_t size, const char *target_name)
649648

650649
/* 总测速记录值 */
651650
double speed_records[size];
652-
653-
// 跳过 upstream
654-
speed_records[0] = 0.0;
655-
int grp_cursor = 1;
656-
657-
if (CliOpt_Parallel)
658-
{
659-
// 跳过 upstream
660-
int cpu_cores = chsrc_get_cpucore () ;
661-
int group_size = (size-1) > cpu_cores ? cpu_cores : (size-1);
662-
int ngroup = (size-1) / group_size;
663-
int rest = (size-1) % group_size;
664-
665-
for (int i=0; i<ngroup; i++, grp_cursor+=group_size)
666-
measure_speed_in_group (group_size, sources, speed_records, grp_cursor);
667-
if (rest > 0)
668-
measure_speed_in_group (rest, sources, speed_records, grp_cursor);
669-
}
670-
else
671-
{
672-
measure_speed_in_group (size-1, sources, speed_records, grp_cursor);
673-
}
674-
651+
measure_speed_for_every_source (sources, size, speed_records);
675652
say ("");
676653

677654
/* DEBUG */
678-
// for (int i=0; i<size; i++)
679-
// {
680-
// printf ("speed_records[%d] = %f\n", i, speed_records[i]);
681-
// }
655+
/*
656+
for (int i=0; i<size; i++)
657+
{
658+
printf ("speed_records[%d] = %f\n", i, speed_records[i]);
659+
}
660+
*/
682661

683662
int fast_idx = get_max_ele_idx_in_dbl_ary (speed_records, size);
684663

@@ -705,7 +684,7 @@ auto_select_ (SourceInfo *sources, size_t size, const char *target_name)
705684

706685

707686
#define use_specific_mirror_or_auto_select(input, s) \
708-
(NULL!=(input)) ? find_mirror(s, input) : auto_select(s)
687+
(NULL!=(input)) ? find_mirror(s, input) : auto_select_mirror(s)
709688

710689

711690

src/chsrc.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,7 @@ get_target (const char *input, TargetOp code, char *option)
541541
}
542542
else if (TargetOp_Measure_Source==code)
543543
{
544-
auto_select_ (target->sources, target->sources_n, input);
544+
select_mirror_autoly (target->sources, target->sources_n, input);
545545
return true;
546546
}
547547
return true;

0 commit comments

Comments
 (0)