julia-vscode / julia-vscode

Julia extension for Visual Studio Code
https://www.julia-vscode.org/
Other
1.28k stars 202 forks source link

vscode hangs (or takes forever) when submitting a long line #443

Closed kafisatz closed 5 years ago

kafisatz commented 6 years ago

When I submit the code below, the screen constantly refreshes. It takes around 40 seconds for the code to 'run'. Often VSCode will acutally hang (or at least it seems to hang at high CPU usage)

Whether I enable word wrap or not does not make much of a difference.

Can I do this another way or can this be improved?

using DataFrames
eld_w_missing=Dict("SCHAEDEN_ANZAHL"=>Int, "VORVERS_SFRABATT_VORHANDEN"=>Bool, "GAP_DECKUNG"=>Bool, "NEUWERTENTSCHAEDIGUNG"=>String, "GROBE_FAHRLAESSIGKEIT"=>Bool, "MALLORCA_POLICE"=>Bool, "MARDERSCHAEDEN"=>String, "ERHOEHTE_DECKUNGSSUMME"=>Bool, "EVB_SERVICE"=>Bool,  "SCHUTZBRIEF_INKL"=>Bool, "ERW_WILDSCHAEDEN"=>String, "FREIE_WERKSTATTWAHL"=>Bool, "AUTOMOBILCLUB_MITGLIED_SEIT"=>Int, "BAHNCARD"=>String, "ZAHLUNGSWEISE"=>String, "JAHRESKARTE_OEPNV"=>Bool, "MOTORRAD_BESITZER"=>Bool, "AUTOMOBILCLUB"=>String, "SFKLASSE_VOLLKASKO"=>String, "VOLLKASKO"=>Int, "SFKLASSE_HAFTPFLICHT"=>String, "GEWUENSCHTER_VERSICHERUNGSSCHUTZ"=>String, "FAHRER_DES_AUTOS"=>String, "HAUPTNUTZER_ID"=>Int, "ANZAHL_WEITERER_FAHRER"=>Int, "STELLPLATZ_ABSCHLIESSBAR"=>Bool, "NAECHTLICHER_STELLPLATZ"=>String, "NUTZUNGSWEISE"=>String, "SAISONKENNZEICHEN"=>Bool, "JAEHRLICHE_FAHRLEISTUNG"=>Int, "ZWECK_DER_GEWERBLICHEN_FAHRTEN"=>String, "KINDER_UNTER_17_IM_HAUSHALT"=>Bool, "TSN"=>String, "ERSTZULASSUNG"=>String, "NEUWAG_OD_GEBRAUCHTWAG_TAGESZULG"=>String, "HSN"=>String, "FINANZIERUNGSART"=>String, "HALTER_LEBT_IM_HAUSHALT"=>Bool, "UNGEFAEHRER_NEUWERT_DES_FHZGS"=>Union{Missing,String}, "ZULASSUNG_AUF_VERSICHERUNGSNEHM"=>Int, "FAHRZEUGHALTER"=>String, "STADT"=>Bool, "VERSICHERUNGSBEGINN"=>Int, "KENNZEICHEN"=>String, "PLZ_DES_HALTER"=>Int, "WOHNEIGENTUM_VERSICHERT_BEI"=>String, "SELBSTGENUTZTES_WOHNEIGENTUM"=>Bool, "ART_DES_WOHNEIGENTUM"=>String, "VERSICHERER_DES_ANDEREN_PKW"=>String, "HALTER_DES_ANDEREN_PKW"=>String, "WEITERE_FAHRZEUGE_AUF_SIE_VERS"=>Bool, "GEBURTSDATUM"=>Int, "FAMILIENSTAND"=>String, "PUNKTE_IN_FLENSBURG"=>Bool, "NATIONALITAET"=>String, "REGELMAESS_ZUGRIFF_AUF_WEIT_FHZ"=>Bool, "LAND_DES_FUEHRERSCHEINERWERBS"=>String, "PLZ_WOHNORT"=>Int, "GESCHLECHT"=>String, "BRANCHE"=>Int, "ARBEITGEBER"=>Int, "ARBEITSWEISE"=>String, "BERUFLICHER_STATUS"=>Int, "BERUF"=>Int, "FUEHRERSCHEIN_ERWORBEN_AM"=>Int, "schaeden0_typeKH"=>Bool, "schaeden0_typetk"=>Bool, "schaeden0_typevk"=>Bool, "schaeden0_month"=>Int, "schaeden0_year"=>Int, "schaeden1_typeKH"=>Bool, "schaeden1_typetk"=>Bool, "schaeden1_typevk"=>Bool, "schaeden1_month"=>Int, "schaeden1_year"=>Int, "schaeden2_typeKH"=>Bool, "schaeden2_typetk"=>Bool, "schaeden2_typevk"=>Bool, "schaeden2_month"=>Int, "schaeden2_year"=>Int, "id"=>Int, "scrapedate"=>String, "tariff1"=>Union{Missing,Float64}, "tariff2"=>Union{Missing,Float64}, "tariff3"=>Union{Missing,Float64}, "tariff4"=>Union{Missing,Float64}, "tariff5"=>Union{Missing,Float64}, "tariff6"=>Union{Missing,Float64}, "tariff7"=>Union{Missing,Float64}, "tariff8"=>Union{Missing,Float64}, "tariff9"=>Union{Missing,Float64}, "tariff10"=>Union{Missing,Float64}, "tariff11"=>Union{Missing,Float64}, "tariff12"=>Union{Missing,Float64}, "tariff13"=>Union{Missing,Float64}, "tariff14"=>Union{Missing,Float64}, "tariff15"=>Union{Missing,Float64}, "tariff16"=>Union{Missing,Float64}, "tariff17"=>Union{Missing,Float64}, "tariff18"=>Union{Missing,Float64}, "tariff19"=>Union{Missing,Float64}, "tariff20"=>Union{Missing,Float64}, "tariff21"=>Union{Missing,Float64}, "tariff22"=>Union{Missing,Float64}, "tariff23"=>Union{Missing,Float64}, "tariff24"=>Union{Missing,Float64}, "tariff25"=>Union{Missing,Float64}, "tariff26"=>Union{Missing,Float64}, "tariff27"=>Union{Missing,Float64}, "tariff28"=>Union{Missing,Float64}, "tariff29"=>Union{Missing,Float64}, "tariff30"=>Union{Missing,Float64}, "tariff31"=>Union{Missing,Float64}, "tariff32"=>Union{Missing,Float64}, "tariff33"=>Union{Missing,Float64}, "tariff34"=>Union{Missing,Float64}, "tariff35"=>Union{Missing,Float64}, "tariff36"=>Union{Missing,Float64}, "tariff37"=>Union{Missing,Float64}, "tariff38"=>Union{Missing,Float64}, "tariff39"=>Union{Missing,Float64}, "tariff40"=>Union{Missing,Float64}, "tariff41"=>Union{Missing,Float64}, "tariff42"=>Union{Missing,Float64}, "tariff43"=>Union{Missing,Float64}, "tariff44"=>Union{Missing,Float64}, "tariff45"=>Union{Missing,Float64}, "tariff46"=>Union{Missing,Float64}, "tariff47"=>Union{Missing,Float64}, "tariff48"=>Union{Missing,Float64}, "tariff49"=>Union{Missing,Float64}, "tariff50"=>Union{Missing,Float64}, "tariff51"=>Union{Missing,Float64}, "tariff52"=>Union{Missing,Float64}, "tariff53"=>Union{Missing,Float64}, "tariff54"=>Union{Missing,Float64}, "tariff55"=>Union{Missing,Float64}, "tariff56"=>Union{Missing,Float64}, "tariff57"=>Union{Missing,Float64}, "tariff58"=>Union{Missing,Float64}, "tariff59"=>Union{Missing,Float64}, "tariff60"=>Union{Missing,Float64}, "tariff61"=>Union{Missing,Float64}, "tariff62"=>Union{Missing,Float64}, "tariff63"=>Union{Missing,Float64}, "tariff64"=>Union{Missing,Float64}, "tariff65"=>Union{Missing,Float64}, "tariff66"=>Union{Missing,Float64}, "tariff67"=>Union{Missing,Float64}, "tariff68"=>Union{Missing,Float64}, "tariff69"=>Union{Missing,Float64}, "tariff70"=>Union{Missing,Float64}, "tariff71"=>Union{Missing,Float64}, "tariff72"=>Union{Missing,Float64}, "tariff73"=>Union{Missing,Float64}, "tariff74"=>Union{Missing,Float64}, "tariff75"=>Union{Missing,Float64}, "tariff76"=>Union{Missing,Float64}, "tariff77"=>Union{Missing,Float64}, "tariff78"=>Union{Missing,Float64}, "tariff79"=>Union{Missing,Float64}, "tariff80"=>Union{Missing,Float64}, "tariff81"=>Union{Missing,Float64}, "tariff82"=>Union{Missing,Float64}, "tariff83"=>Union{Missing,Float64}, "tariff84"=>Union{Missing,Float64}, "tariff85"=>Union{Missing,Float64}, "tariff86"=>Union{Missing,Float64}, "tariff87"=>Union{Missing,Float64}, "tariff88"=>Union{Missing,Float64}, "tariff89"=>Union{Missing,Float64}, "tariff90"=>Union{Missing,Float64}, "tariff91"=>Union{Missing,Float64}, "tariff92"=>Union{Missing,Float64}, "tariff93"=>Union{Missing,Float64}, "tariff94"=>Union{Missing,Float64}, "tariff95"=>Union{Missing,Float64}, "tariff96"=>Union{Missing,Float64}, "tariff97"=>Union{Missing,Float64}, "tariff98"=>Union{Missing,Float64}, "tariff99"=>Union{Missing,Float64}, "tariff100"=>Union{Missing,Float64}, "tariff101"=>Union{Missing,Float64}, "tariff102"=>Union{Missing,Float64}, "tariff103"=>Union{Missing,Float64}, "tariff104"=>Union{Missing,Float64}, "tariff105"=>Union{Missing,Float64}, "tariff106"=>Union{Missing,Float64}, "tariff107"=>Union{Missing,Float64}, "tariff108"=>Union{Missing,Float64}, "tariff109"=>Union{Missing,Float64}, "tariff110"=>Union{Missing,Float64}, "tariff111"=>Union{Missing,Float64}, "tariff112"=>Union{Missing,Float64}, "tariff113"=>Union{Missing,Float64}, "tariff114"=>Union{Missing,Float64}, "tariff115"=>Union{Missing,Float64}, "tariff116"=>Union{Missing,Float64}, "tariff117"=>Union{Missing,Float64}, "tariff118"=>Union{Missing,Float64}, "tariff119"=>Union{Missing,Float64}, "tariff120"=>Union{Missing,Float64}, "tariff121"=>Union{Missing,Float64}, "tariff122"=>Union{Missing,Float64}, "tariff123"=>Union{Missing,Float64}, "tariff124"=>Union{Missing,Float64}, "tariff125"=>Union{Missing,Float64}, "tariff126"=>Union{Missing,Float64}, "tariff127"=>Union{Missing,Float64}, "tariff128"=>Union{Missing,Float64}, "tariff129"=>Union{Missing,Float64}, "tariff130"=>Union{Missing,Float64}, "tariff131"=>Union{Missing,Float64}, "tariff132"=>Union{Missing,Float64}, "tariff133"=>Union{Missing,Float64}, "tariff134"=>Union{Missing,Float64})
davidanthoff commented 6 years ago

I think we'll have to move to a different way to send code to the REPL to fix this. Kind of on the roadmap, but probably won't happen very soon.

andrewning commented 6 years ago

I’ve run into that issue as well. Sometimes with large data arrays, or just more generally as a file starts to grow in length in which case running the whole file slows things down considerably as compared to Juno. I’ve worked around it by putting long lines (or long sections) in a separate file and then using include in a main file. Keeps things fast. I’d prefer to not have to do that but I like vscode and this Julia extension so I deal with the workaround for now.

andrewning commented 5 years ago

This doesn't address the issue with a long line, but for long files this issue could be addressed by sending include("file.jl") to the repl as also suggested in #559. The Sublime Text Send Code plugin (https://github.com/randy3k/SendCode) does this instead of sending all lines individually and I've found it quite handy.

davidanthoff commented 5 years ago

That would require us to save the file, but executing code shouldn't save a file, IMO.

We'll tackle this in v0.12. I've started a much better way to execute code already that would solve this, but we first need to sort out the julia 1.0 release.