开始使用pycharm了

时间:2023-03-09 16:37:21
开始使用pycharm了

我将python的主力开发工具从eclipse+pydev切换到pycharm社区版了.

选择pycharm 的原因:
1. pycharm可以实时按照pep8的规范检查code style和naming rules, 尤其是naming rules(类名/方法名/attr名/文件名), 这个我非常看重.
python 标准库和第三方库的命名规范不太统一, 我还在慢慢习惯python的命名风格, 所以pycharm这一功能可以强制我的代码保持一个风格.  (我其实还是比较喜欢C#/Delphi的命名规范)
2. pycharm可以做code inspection, 不仅仅是python代码, html也可以. 这个很赞, pydev只能检查python代码.
3. pycharm 还有个很赞的功能, 能列出virtual env 中已经安装的包, 能显示安装包的版本和当前最新的版本, 这样比较好确定需要升级哪些包.

调教点:
1. Appearance 使用Windows风格, 我非常不习惯菜单项也是dark的样子, 只需要editor是dark即可.
2. KeyMap 使用 eclipse 风格
3. plugins: 禁用所有VCS类的插件, 我不习惯在IDE中做版本控制. 安装2个插件, codeglance 和 string manipulation
4. Editor 中开启Line number
5. Show method sparators,  editor会用一个长线来分割方法, 很醒目, 很赞.
6. Editor 中关闭soft wraps
7. Editor 字体选用 雅黑
8. Editor 安装Obsidian color schema, 从github搜索下载
9. Editor inspections 中关闭 spelling/typo检查
10. Inspections的PEP8 coding style violation中Ignore errors中, 添加 E303, 即不对空白行行数做限制

安装Plugin:
我只安装了2个插件:
CodeGlance, 为Editor提供minibar
String Manipulation, 提供丰富的字符串处理功能

提升工作效率的快捷键:    
    Search symbols, 重新定义快捷键: Ctrl+Shift+S
    Search resource, 快捷键 Ctrl+Shift+V
    Search class, 快捷键 Ctrl+Shift+T
    Search everywhere, 重新定义快捷键: Ctrl+Shift+L
    Find in path, 多文件范围的查找, Ctrl+H
    Reformat code, 快捷键 Ctrl+Alt+L

优化 pycharm
pycharm 打开太慢了, 有一次打开一个项目全过程居然需要近10分钟, 网上找到个优化帖子, http://www.oschina.net/question/179574_29497.  我这边测试该贴真心管用, 速度提升非常明显(约提升10倍), JVM 调优真有学问啊.   
我用的 pycharm 4.5, 它自带的jre 8. 所以没有按照帖子改到jre 7. 只是修改了 pycharm.exe.vmoptions 内容.
我的内存是 3GB, 机械硬盘.
修改后 pycharm.exe.vmoptions 的内容为: 最重要的是Xmx, 比较苦逼的是, 内存太小了, 不得已找了一大堆优化参数, 当然效果肯定比不上加内存条.

-server
-ea
-Xverify:none
-Xms256m
-Xss16m
-Xmx1152m
-XX:MaxPermSize=256m
-XX:ReservedCodeCacheSize=128m
-XX:+UseG1GC
-XX:G1ReservePercent=20
-XX:MaxGCPauseMillis=120
-XX:MaxHeapFreeRatio=70
-XX:+AggressiveOpts
-XX:+UseCodeCacheFlushing
-XX:+BackgroundCompilation
-XX:+EliminateLocks
-XX:+DoEscapeAnalysis
-XX:+BindGCTaskThreadsToCPUs
-XX:GCTimeRatio=1
-XX:BiasedLockingStartupDelay=0
-XX:+UseFastAccessorMethods
-XX:+UseFastEmptyMethods
-XX:+UseFastJNIAccessors
-XX:+OptimizeStringConcat
-XX:+UseStringCache
-XX:+UseStringDeduplication
-XX:+UseTLAB
-XX:+ResizeTLAB
-XX:+UseAdaptiveGCBoundary
-XX:+UseAdaptiveSizePolicy
-Djdk.map.althashing.threshold=0
-Dsun.awt.keepWorkingSetOnMinimize=true
-Djava.net.preferIPv4Stack=true

下面是之前用过的一个优化设置:

-server
-Xms512m
-Xmx768m
-XX:MaxPermSize=300m
-XX:ReservedCodeCacheSize=256m
-Xverify:none
-XX:+UseCodeCacheFlushing
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:+AggressiveOpts
-XX:+CMSClassUnloadingEnabled
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:CMSIncrementalDutyCycleMin=0
-XX:-TraceClassUnloading
-XX:+TieredCompilation
-Dsun.awt.keepWorkingSetOnMinimize=true
-Djava.net.preferIPv4Stack=true

下面是之前用过的另一个优化设置:
-Xms512m
-Xmx768m
-XX:MaxPermSize=300m
-server
-Xverify:none
-XX:+UseG1GC
-XX:MaxGCPauseMillis=12
-XX:MaxHeapFreeRatio=70
-XX:+CMSIncrementalPacing
-Dsun.awt.keepWorkingSetOnMinimize=true
-Djava.net.preferIPv4Stack=true

其他亮点和资源:
1. PyCharm也支持C#的代码自定义折叠写法,
    #region Description
    Your code goes here...
    #endregion
2. pep8的详细参数见, http://pep8.readthedocs.org/en/latest/intro.html    
3. 博客 How to Get Started with PyCharm and Have a Productive Python IDE : http://pedrokroger.net/getting-started-pycharm-python-ide/