DJDT

Time

Resource usage

Resource Value
User CPU time 241.814 msec
System CPU time 5.077 msec
Total CPU time 246.891 msec
Elapsed time 265.575 msec
Context switches 273 voluntary, 1 involuntary

Browser timing

Timing attribute Timeline Milliseconds since navigation start (+length)

SQL queries from 1 connection

  • default 17.38 ms (11 queries )
Query Timeline Time (ms) Action
SELECT "lego_part"."id",
       "lego_part"."part_num",
       "lego_part"."name",
       "lego_part"."part_cat_id",
       "lego_part"."notes",
       "lego_part"."is_active",
       "lego_part"."search_vector",
       "lego_part"."ldraw_part_id",
       "lego_part"."bricklink_part_id",
       "lego_part"."ignore_color_errors",
       "lego_part"."part_material_id",
       "lego_part"."is_bricklink_minifig",
       "lego_part"."is_bricklink_book",
       "lego_part"."is_bricklink_gear",
       "lego_part"."show_generic_part_msg",
       "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug",
       "lego_partmaterial"."id",
       "lego_partmaterial"."name",
       "lego_partoverlay"."part_id",
       "lego_partoverlay"."length",
       "lego_partstats"."part_id",
       "lego_partstats"."num_sets",
       "lego_partstats"."num_mocs",
       "lego_partstats"."num_set_parts",
       "lego_partstats"."num_moc_parts",
       "lego_partstats"."y1",
       "lego_partstats"."y2",
       "lego_partstats"."is_dirty"
  FROM
"lego_part"
 INNER JOIN
"lego_partcategory"
    ON
("lego_part"."part_cat_id" = "lego_partcategory"."id")
 INNER JOIN
"lego_partmaterial"
    ON
("lego_part"."part_material_id" = "lego_partmaterial"."id")
  LEFT OUTER JOIN
"lego_partoverlay"
    ON
("lego_part"."id" = "lego_partoverlay"."part_id")
  LEFT OUTER JOIN
"lego_partstats"
    ON
("lego_part"."id" = "lego_partstats"."part_id")
 WHERE
"lego_part"."part_num" = 'rock'
 LIMIT
21
SELECT ••• FROM "lego_part" INNER JOIN "lego_partcategory" ON ("lego_part"."part_cat_id" = "lego_partcategory"."id") INNER JOIN "lego_partmaterial" ON ("lego_part"."part_material_id" = "lego_partmaterial"."id") LEFT OUTER JOIN "lego_partoverlay" ON ("lego_part"."id" = "lego_partoverlay"."part_id") LEFT OUTER JOIN "lego_partstats" ON ("lego_part"."id" = "lego_partstats"."part_id") WHERE "lego_part"."part_num" = 'rock' LIMIT 21
0.55

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(122)
  part = get_or_none(Part.all_objects, part_num=slug1)

/home/nathan/rb/site/./rb/utils.py in get_or_none(605)
  return manager.get(**kwargs)

SELECT "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug"
  FROM
"lego_partcategory"
 WHERE
"lego_partcategory"."slug" = 'rock'
 LIMIT
21
SELECT ••• FROM "lego_partcategory" WHERE "lego_partcategory"."slug" = 'rock' LIMIT 21
0.09

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(131)
  part_cat = get_or_none(PartCategory.objects, slug=slug)

/home/nathan/rb/site/./rb/utils.py in get_or_none(605)
  return manager.get(**kwargs)

SELECT "lego_part"."id",
       "lego_part"."part_num",
       "lego_part"."name",
       "lego_part"."part_cat_id",
       "lego_part"."notes",
       "lego_part"."is_active",
       "lego_part"."search_vector",
       "lego_part"."ldraw_part_id",
       "lego_part"."bricklink_part_id",
       "lego_part"."ignore_color_errors",
       "lego_part"."part_material_id",
       "lego_part"."is_bricklink_minifig",
       "lego_part"."is_bricklink_book",
       "lego_part"."is_bricklink_gear",
       "lego_part"."show_generic_part_msg"
  FROM
"lego_part"
 INNER JOIN
"lego_partstats"
    ON
("lego_part"."id" = "lego_partstats"."part_id")
 WHERE
("lego_part"."is_active" AND "lego_partstats"."num_sets" > 0 AND "lego_part"."part_cat_id" IN (33))
 LIMIT
1000
SELECT ••• FROM "lego_part" INNER JOIN "lego_partstats" ON ("lego_part"."id" = "lego_partstats"."part_id") WHERE ("lego_part"."is_active" AND "lego_partstats"."num_sets" > 0 AND "lego_part"."part_cat_id" IN (33)) LIMIT 1000
0.74

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(146)
  search_results = get_part_search(request, params)

/home/nathan/rb/site/./lego/views/search.py in get_part_search(179)
  results = sort_user_parts(request, results)

/home/nathan/rb/site/./lego/filters.py in sort_user_parts(1588)
  return PartSorter.sort_user_parts(user_parts, sort_by, sort_dir, prefix=prefix, group_by=group_by, group_by_db=group_by_db)

/home/nathan/rb/site/./lego/constants/parts.py in sort_user_parts(29)
  if len(parts.select_related(None).prefetch_related(None)) <= 1:

SELECT "lego_part"."id",
       "lego_part"."part_num",
       "lego_part"."name",
       "lego_part"."part_cat_id",
       "lego_part"."notes",
       "lego_part"."is_active",
       "lego_part"."search_vector",
       "lego_part"."ldraw_part_id",
       "lego_part"."bricklink_part_id",
       "lego_part"."ignore_color_errors",
       "lego_part"."part_material_id",
       "lego_part"."is_bricklink_minifig",
       "lego_part"."is_bricklink_book",
       "lego_part"."is_bricklink_gear",
       "lego_part"."show_generic_part_msg",
       "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug",
       "lego_partmaterial"."id",
       "lego_partmaterial"."name",
       "lego_partoverlay"."part_id",
       "lego_partoverlay"."length",
       "lego_partstats"."part_id",
       "lego_partstats"."num_sets",
       "lego_partstats"."num_mocs",
       "lego_partstats"."num_set_parts",
       "lego_partstats"."num_moc_parts",
       "lego_partstats"."y1",
       "lego_partstats"."y2",
       "lego_partstats"."is_dirty"
  FROM
"lego_part"
 INNER JOIN
"lego_partstats"
    ON
("lego_part"."id" = "lego_partstats"."part_id")
 INNER JOIN
"lego_partcategory"
    ON
("lego_part"."part_cat_id" = "lego_partcategory"."id")
 INNER JOIN
"lego_partmaterial"
    ON
("lego_part"."part_material_id" = "lego_partmaterial"."id")
  LEFT OUTER JOIN
"lego_partoverlay"
    ON
("lego_part"."id" = "lego_partoverlay"."part_id")
 WHERE
("lego_part"."is_active" AND "lego_partstats"."num_sets" > 0 AND "lego_part"."part_cat_id" IN (33))
 LIMIT
1000
SELECT ••• FROM "lego_part" INNER JOIN "lego_partstats" ON ("lego_part"."id" = "lego_partstats"."part_id") INNER JOIN "lego_partcategory" ON ("lego_part"."part_cat_id" = "lego_partcategory"."id") INNER JOIN "lego_partmaterial" ON ("lego_part"."part_material_id" = "lego_partmaterial"."id") LEFT OUTER JOIN "lego_partoverlay" ON ("lego_part"."id" = "lego_partoverlay"."part_id") WHERE ("lego_part"."is_active" AND "lego_partstats"."num_sets" > 0 AND "lego_part"."part_cat_id" IN (33)) LIMIT 1000
0.73

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(146)
  search_results = get_part_search(request, params)

/home/nathan/rb/site/./lego/views/search.py in get_part_search(179)
  results = sort_user_parts(request, results)

/home/nathan/rb/site/./lego/filters.py in sort_user_parts(1588)
  return PartSorter.sort_user_parts(user_parts, sort_by, sort_dir, prefix=prefix, group_by=group_by, group_by_db=group_by_db)

/home/nathan/rb/site/./lego/constants/parts.py in sort_user_parts(53)
  return sorted(parts, key=lambda x: x.sort_by_part_color(group_by=group_by), reverse=reverse)

SELECT "lego_element"."id",
       "lego_element"."part_id",
       "lego_element"."color_id",
       "lego_element"."element_id",
       "lego_element"."design_id",
       "lego_element"."descr",
       "lego_element"."color_descr",
       "lego_element"."last_download_attempt",
       "lego_element"."num_download_attempts",
       "lego_element"."is_export_id",
       "lego_element"."is_active"
  FROM
"lego_element"
 INNER JOIN
"lego_color"
    ON
("lego_element"."color_id" = "lego_color"."id")
 WHERE
("lego_element"."is_active" AND "lego_element"."part_id" IN (37584, 37593, 37580, 66490, 66489, 56387, 68570, 66491, 66487, 66488, 37706, 40429, 16059, 6337, 43890, 30393, 21436, 201, 2440, 24485, 3895, 2299, 13661, 5036, 24239, 8002, 12427, 13942, 10803, 19433, 53088, 53089, 21227, 20768, 18386, 19788, 22750, 19821, 3753, 6307, 8230, 59272, 13578, 6311, 2667, 15652, 19668, 19112, 21121, 22033, 33713, 71730, 65278, 52907, 21164, 9997))
 ORDER BY
"lego_color"."name" ASC, "lego_element"."element_id" ASC
SELECT ••• FROM "lego_element" INNER JOIN "lego_color" ON ("lego_element"."color_id" = "lego_color"."id") WHERE ("lego_element"."is_active" AND "lego_element"."part_id" IN (37584, 37593, 37580, 66490, 66489, 56387, 68570, 66491, 66487, 66488, 37706, 40429, 16059, 6337, 43890, 30393, 21436, 201, 2440, 24485, 3895, 2299, 13661, 5036, 24239, 8002, 12427, 13942, 10803, 19433, 53088, 53089, 21227, 20768, 18386, 19788, 22750, 19821, 3753, 6307, 8230, 59272, 13578, 6311, 2667, 15652, 19668, 19112, 21121, 22033, 33713, 71730, 65278, 52907, 21164, 9997)) ORDER BY "lego_color"."name" ASC, "lego_element"."element_id" ASC
1.53

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(202)
  prefetch_related_objects(search_results, *Part.pr)

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
"lego_partcolorstats"."part_id" IN (37584, 37593, 37580, 66490, 66489, 56387, 68570, 66491, 66487, 66488, 37706, 40429, 16059, 6337, 43890, 30393, 21436, 201, 2440, 24485, 3895, 2299, 13661, 5036, 24239, 8002, 12427, 13942, 10803, 19433, 53088, 53089, 21227, 20768, 18386, 19788, 22750, 19821, 3753, 6307, 8230, 59272, 13578, 6311, 2667, 15652, 19668, 19112, 21121, 22033, 33713, 71730, 65278, 52907, 21164, 9997)
SELECT ••• FROM "lego_partcolorstats" WHERE "lego_partcolorstats"."part_id" IN (37584, 37593, 37580, 66490, 66489, 56387, 68570, 66491, 66487, 66488, 37706, 40429, 16059, 6337, 43890, 30393, 21436, 201, 2440, 24485, 3895, 2299, 13661, 5036, 24239, 8002, 12427, 13942, 10803, 19433, 53088, 53089, 21227, 20768, 18386, 19788, 22750, 19821, 3753, 6307, 8230, 59272, 13578, 6311, 2667, 15652, 19668, 19112, 21121, 22033, 33713, 71730, 65278, 52907, 21164, 9997)
1.43

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(202)
  prefetch_related_objects(search_results, *Part.pr)

SELECT "lego_partcost"."id",
       "lego_partcost"."part_id",
       "lego_partcost"."color_id",
       "lego_partcost"."is_used",
       "lego_partcost"."cost_avg",
       "lego_partcost"."cost_min",
       "lego_partcost"."cost_max",
       "lego_partcost"."cost_count"
  FROM
"lego_partcost"
 WHERE
"lego_partcost"."part_id" IN (37584, 37593, 37580, 66490, 66489, 56387, 68570, 66491, 66487, 66488, 37706, 40429, 16059, 6337, 43890, 30393, 21436, 201, 2440, 24485, 3895, 2299, 13661, 5036, 24239, 8002, 12427, 13942, 10803, 19433, 53088, 53089, 21227, 20768, 18386, 19788, 22750, 19821, 3753, 6307, 8230, 59272, 13578, 6311, 2667, 15652, 19668, 19112, 21121, 22033, 33713, 71730, 65278, 52907, 21164, 9997)
SELECT ••• FROM "lego_partcost" WHERE "lego_partcost"."part_id" IN (37584, 37593, 37580, 66490, 66489, 56387, 68570, 66491, 66487, 66488, 37706, 40429, 16059, 6337, 43890, 30393, 21436, 201, 2440, 24485, 3895, 2299, 13661, 5036, 24239, 8002, 12427, 13942, 10803, 19433, 53088, 53089, 21227, 20768, 18386, 19788, 22750, 19821, 3753, 6307, 8230, 59272, 13578, 6311, 2667, 15652, 19668, 19112, 21121, 22033, 33713, 71730, 65278, 52907, 21164, 9997)
1.19

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(202)
  prefetch_related_objects(search_results, *Part.pr)

SELECT "lego_partphoto"."id",
       "lego_partphoto"."part_id",
       "lego_partphoto"."color_id",
       "lego_partphoto"."submitted_by_id",
       "lego_partphoto"."image",
       "lego_partphoto"."timestamp",
       "lego_partphoto"."is_active",
       "lego_partphoto"."is_primary"
  FROM
"lego_partphoto"
 WHERE
("lego_partphoto"."is_active" AND "lego_partphoto"."part_id" IN (37584, 37593, 37580, 66490, 66489, 56387, 68570, 66491, 66487, 66488, 37706, 40429, 16059, 6337, 43890, 30393, 21436, 201, 2440, 24485, 3895, 2299, 13661, 5036, 24239, 8002, 12427, 13942, 10803, 19433, 53088, 53089, 21227, 20768, 18386, 19788, 22750, 19821, 3753, 6307, 8230, 59272, 13578, 6311, 2667, 15652, 19668, 19112, 21121, 22033, 33713, 71730, 65278, 52907, 21164, 9997))
SELECT ••• FROM "lego_partphoto" WHERE ("lego_partphoto"."is_active" AND "lego_partphoto"."part_id" IN (37584, 37593, 37580, 66490, 66489, 56387, 68570, 66491, 66487, 66488, 37706, 40429, 16059, 6337, 43890, 30393, 21436, 201, 2440, 24485, 3895, 2299, 13661, 5036, 24239, 8002, 12427, 13942, 10803, 19433, 53088, 53089, 21227, 20768, 18386, 19788, 22750, 19821, 3753, 6307, 8230, 59272, 13578, 6311, 2667, 15652, 19668, 19112, 21121, 22033, 33713, 71730, 65278, 52907, 21164, 9997))
9.38

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(202)
  prefetch_related_objects(search_results, *Part.pr)

select 0 as id,
       part_id,
       color_id
  from
lego_partcolorstats a
 where
num_set_parts = (
        select max(num_set_parts)
          from
lego_partcolorstats b
         where
a.part_id=b.part_id
           and
num_sets>0
       )
   and
num_sets>0
   and
part_id in (37584,37593,37580,66490,66489,56387,68570,66491,66487,66488,37706,40429,16059,6337,43890,30393,21436,201,2440,24485,3895,2299,13661,5036,24239,8002,12427,13942,10803,19433,53088,53089,21227,20768,18386,19788,22750,19821,3753,6307,8230,59272,13578,6311,2667,15652,19668,19112,21121,22033,33713,71730,65278,52907,21164,9997)
select 0 as id, part_id, color_id from lego_partcolorstats a where num_set_parts = (select max(num_set_parts) from lego_partcolorstats b where a.part_id=b.part_id and num_sets>0) and num_sets>0 and part_id in (37584,37593,37580,66490,66489,56387,68570,66491,66487,66488,37706,40429,16059,6337,43890,30393,21436,201,2440,24485,3895,2299,13661,5036,24239,8002,12427,13942,10803,19433,53088,53089,21227,20768,18386,19788,22750,19821,3753,6307,8230,59272,13578,6311,2667,15652,19668,19112,21121,22033,33713,71730,65278,52907,21164,9997)
1.30

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(207)
  Part.attach_most_common_color_to_parts(search_results)

/home/nathan/rb/site/./lego/models/parts.py in attach_most_common_color_to_parts(341)
  pcs_map = {p.part_id:p.color_id for p in pcs}

SELECT "lego_color"."id",
       "lego_color"."name",
       "lego_color"."rgb",
       "lego_color"."is_trans",
       "lego_color"."fuzzy_color_id",
       "lego_color"."is_active"
  FROM
"lego_color"
 WHERE
"lego_color"."is_active"
 ORDER BY
"lego_color"."name" ASC
SELECT ••• FROM "lego_color" WHERE "lego_color"."is_active" ORDER BY "lego_color"."name" ASC
0.28

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(330)
  context['adv_form'] = AdvancedSearchPartsForm(params.copy(), user=request.user)

/home/nathan/rb/site/./lego/forms/parts.py in __init__(672)
  self.fields['exists_in_color'].choices = Color.get_color_options(True)

/home/nathan/rb/site/./lego/models/colors.py in get_color_options(110)
  for color in colors:

SELECT "countries_plus_country"."iso",
       "countries_plus_country"."iso3",
       "countries_plus_country"."iso_numeric",
       "countries_plus_country"."fips",
       "countries_plus_country"."name",
       "countries_plus_country"."capital",
       "countries_plus_country"."area",
       "countries_plus_country"."population",
       "countries_plus_country"."continent",
       "countries_plus_country"."tld",
       "countries_plus_country"."currency_code",
       "countries_plus_country"."currency_symbol",
       "countries_plus_country"."currency_name",
       "countries_plus_country"."phone",
       "countries_plus_country"."postal_code_format",
       "countries_plus_country"."postal_code_regex",
       "countries_plus_country"."languages",
       "countries_plus_country"."geonameid",
       "countries_plus_country"."neighbours",
       "countries_plus_country"."equivalent_fips_code"
  FROM
"countries_plus_country"
 WHERE
"countries_plus_country"."iso" = 'US'
 LIMIT
21
SELECT ••• FROM "countries_plus_country" WHERE "countries_plus_country"."iso" = 'US' LIMIT 21
0.15

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(333)
  return render(request, 'parts/find_parts.html', context)

/home/nathan/rb/site/./rb/templatetags/rb_geo.py in geo_currency(20)
  geo_data = user.geo.get_user_currency()

/home/nathan/rb/site/./geo/geo.py in get_user_currency(252)
  country = Country.objects.get(iso=country_code)

412 </a>
413 </li>
414 <li class="hidden-xs">
415 {% geo_currency request.user %}
416 </li>
417 {% comment %}
418 <li class="hidden-xs hidden-sm">
419 <a href={% if request.user.is_authenticated %}"{% url 'user_profile_settings' request.user.get_username %}#personalisation"{% else %}"#" onclick="return false;"{% endif %} title="All date/times are being converted to this timezone">{% get_user_timezone request.user %}</a>

/home/nathan/rb/site/rb/templates/rb/base_root.html

Log messages

No messages logged.